caffe生成log日誌

參考日誌:ide

http://blog.csdn.net/sunshine_in_moon/article/details/53529028函數

http://blog.csdn.net/lishanlu136/article/details/51491301google

 

修改caffe-master\src\caffe文件夾下的common.cpp文件,或者用vs打開caffe解決方案。spa

編譯common.cpp文件。.net

添加頭文件日誌

#include <boost/date_time.hpp>  
#include <direct.h>  

找到GlobalInit函數,向其中添加代碼blog

void GlobalInit(int* pargc, char*** pargv) {
  // Google flags.
  ::gflags::ParseCommandLineFlags(pargc, pargv, true);
  // Google logging.
  
    std::string FLAGS_log_dir="./log/";//存放日誌文件的文件夾路徑,咱們能夠本身指定  
    _mkdir(FLAGS_log_dir.c_str()); 
	FLAGS_colorlogtostderr = true;//設置輸出到屏幕的日誌顯示相應顏色
    std::string LOG_INFO_FILE;  
    std::string LOG_WARNING_FILE;  
    std::string LOG_ERROR_FILE;  
    std::string LOG_FATAL_FILE;  
    std::string now_time = boost::posix_time::to_iso_extended_string(boost::posix_time::second_clock::local_time());  
    now_time[13] = '-';  
    now_time[16] = '-';  
    LOG_INFO_FILE = FLAGS_log_dir + "INFO" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_INFO, LOG_INFO_FILE.c_str());  
    LOG_WARNING_FILE = FLAGS_log_dir + "WARNING" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_WARNING, LOG_WARNING_FILE.c_str());  
    LOG_ERROR_FILE = FLAGS_log_dir + "ERROR" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_ERROR, LOG_ERROR_FILE.c_str());  
    LOG_FATAL_FILE = FLAGS_log_dir + "FATAL" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_FATAL, LOG_FATAL_FILE.c_str());  

  ::google::InitGoogleLogging(*(pargv)[0]);
  // Provide a backtrace on segfault.

#if !defined(_MSC_VER)
  ::google::InstallFailureSignalHandler();
#endif
}

     中間的部分爲添加的代碼。博客

  從新生成libcaffe,而後從新生成caffe,便可。string

  再訓練一遍mnist數據集,便可在log文件夾下多出一個日誌文件。it

  我在參考第一個博客的時候,按照做者所說的把生成日誌的功能寫一個函數initGlog() ,而後在GlobalInit中加入這個函數initGlog() ,總會報錯

 error C4430: 缺乏類型說明符 - 假定爲 int。注意: C++ 不支持默認 int

  網上說是出現頭文件的嵌套問題,我找了半天也沒有解決,乾脆就試着像第二個博客裏面同樣,將生成日誌的代碼直接添加在GlobalInit這個函數中,成功了。就是日誌的名字有點奇怪,用的時候,還要再把後綴改一下。

相關文章
相關標籤/搜索