参考文章过程中遇到一些问题,问题和解决办法如下:
-
运行voc_annotation.py时报错:AttributeError: ‘NoneType‘ object has no attribute ‘text‘
解决办法:因为labelimage生成的xml文件中关键字为Difficult而不是difficult,需修改相应代码difficult = obj.find('difficult').text
为difficult = obj.find('Difficult').text
-
生成的.txt文件要修改名字
-
执行train.py时报错:AttributeError: module ‘keras.backend’ has no attribute ‘control_flow_ops’
原因是keras版本过高,但是为了匹配tensorflow,不能降级,解决办法为找到keras安装包对应backen里的init文件,添加如下代码:
文件位置在xxx/Lib/site-packages/keras/backend/init.py# 在150行左右加入以下导包语句 from .load_backend import control_flow_ops from .load_backend import set_image_dim_ordering
修改后没有报错。使用文章中的train.py记得新建一个logs/000/的文件夹,这个文件夹里最后会生成自己训练的模型trained_weights.h5,后面使用。
可以在train.py里的train函数修改训练里的参数,这里我修改了batch_size,原本是10,但是因为我测试时只用了9个数据,都小于10了,所以第一次没注意报错了,后面就没啥问题了。