参考日志:
http://blog.csdn.net/sunshine_in_moon/article/details/53529028
http://blog.csdn.net/lishanlu136/article/details/51491301
修改caffe-mastersrccaffe文件夹下的common.cpp文件,或者用vs打开caffe解决方案。
编译common.cpp文件。
添加头文件
#include <boost/date_time.hpp> #include <direct.h>
找到GlobalInit函数,向其中添加代码
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,即可。
再训练一遍mnist数据集,即可在log文件夹下多出一个日志文件。
我在参考第一个博客的时候,按照作者所说的把生成日志的功能写一个函数initGlog() ,然后在GlobalInit中加入这个函数initGlog() ,总会报错
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
网上说是出现头文件的嵌套问题,我找了半天也没有解决,干脆就试着像第二个博客里面一样,将生成日志的代码直接添加在GlobalInit这个函数中,成功了。就是日志的名字有点奇怪,用的时候,还要再把后缀改一下。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:caffe生成log日志 - Python技术站