win10+python3+caffe填坑日志

阶段三——结果绘图:

调用caffe提供的工具读取模型训练的log,绘制结果图的时候,由于caffe提供的plot_training_log.py是按照python2的语法写的,所以应该:

1、将print语法改为python3.x带圆括号的那种,

2、将xrange改为range

除此之外,还会出现以下几个坑(不完全统计)。

坑3.1

报错:如图

win10+python3+caffe填坑日志_第1张图片

位置:plot_training_log.py

原因1:问题在于plot_training_log.py中的return dirname + '/parse_log.sh'。这里的.sh文件是linux系统的shell命令,在windows上不能运行。

解决办法:将plot_training_log.py中的return dirname + '/parse_log.sh'改为return dirname + '/parse_log.py'。并将XX\caffe-windows\tools\extra中的parse_log.py拷贝到当前工作目录下。

坑3.2

报错:即使填好了坑3.1,依然会有以下报错:

win10+python3+caffe填坑日志_第2张图片

原因:plot_traing_log.py中的os.system('%s %s' % (get_log_parsing_script(), path_to_log))生成的命令是一种在linux命令格式,不适用与windows

解决办法1:将plot_traing_log.py中的os.system('%s %s' % (get_log_parsing_script(), path_to_log))改为os.system('python %s %s %s'%("parse_log.py", "mnist_Lenet_train_test.log" ,"./"))

解决办法2:注释掉plot_training_log.py中的

os.system('%s %s' % (get_log_parsing_script(), path_to_log)),改为在cmd窗口手动执行 python parse_log.py mnist_Lenet_train_test.log ./

坑3.3

报错:TypeError: 'dict_keys' object does not support indexing

位置:plot_training_log.py 中的return lmarkers.keys()[idx]

原因:python2.x中,dict.keys()返回一个列表,在python3.x中,dict.keys()返回一个dict_keys对象,比起列表,对象的行为更像是set,所以不支持索引

解决方法:将markers.keys()[idx]改为 list(markers.keys())[idx]

参考:http://blog.csdn.net/chienchia/article/details/40887831

坑3.4

报错:如图


win10+python3+caffe填坑日志_第3张图片

原因:log.test文件中同一行相邻元素之间是用逗号而不是空格来分开的。原版plot_training_log.py

中的fields = line.split( )无法相邻元素分开。

解决办法:将fields = line.split( )改为fields = line.split(',')

坑3.5

报错


win10+python3+caffe填坑日志_第4张图片

原因:如图,.log.test文件有空格行,当读取到空格行的时候就发生string index out of range


win10+python3+caffe填坑日志_第5张图片


win10+python3+caffe填坑日志_第6张图片

解决办法:在spyder中打开mnist_Lenet_train_test.log.text

手动删除空格行,或修改以下代码跳过空格行。

你可能感兴趣的:(win10+python3+caffe填坑日志)