參考日誌: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這個函數中,成功了。就是日誌的名字有點奇怪,用的時候,還要再把後綴改一下。