caffe生成log日志
Posted 9分钟带帽丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了caffe生成log日志相关的知识,希望对你有一定的参考价值。
参考日志:
http://blog.csdn.net/sunshine_in_moon/article/details/53529028
http://blog.csdn.net/lishanlu136/article/details/51491301
修改caffe-master\\src\\caffe文件夹下的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日志的主要内容,如果未能解决你的问题,请参考以下文章
caffe中accuracy和loss用python从log日志里面获取
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情