windows下想要运行faster-rcnn等网络首先就是要编译lib文件夹下的setup.py ,建立Cython模块。在训练FPN模型前需要建立fast-RCNN环境。
1. 编译setup.py
cd到lib目录下执行 python setup.py build_ext --inplace
python setup.py build_ext install
报错1: unable to find vcvarsall.bat
解决方法 : 使用VS完全卸载工具卸载原来的VS(完全删除注册表等内容)并安装VS2015
ps : VS完全卸载工具链接: https://pan.baidu.com/s/1-VPucIdcLpuv1v8TD0_hnw 提取码: xu2m
报错2:LINK : fatal error LNK1158: cannot run 'rc.exe'
从 C:\Program Files (x86)\Windows Kits\8.1\bin\x86 Copy these files: rc.exe, rcdll.dll
到 D:\VS2015\VC\bin\path\ 该path是根据前面的报错信息路径找到文件夹放入。
该步骤将pyx文件转换为pyd文件,可直接引用module
2. train.py步骤
报错:OutOfRangeError (see above for traceback): RandomShuffleQueue '_1_shuffle_batch/random_shuffle_queue is closed and has insufficient elements (requested 1, current size 0)
产生该错误的可能有很多
1. read_tfrecord.py中
img = tf.decode_raw(features['img'], tf.uint8)
img的格式tf.uint8格式和之前的写入格式需要匹配,也可能是tf.float32
2. capacity ,num_threads, 照片存在异常等。 参考文章:https://blog.youkuaiyun.com/weixin_41713230/article/details/81539348
对于我来说前面提出的参数调整都无效
解决方法:将照片重新标注,重新写入tfrecord,原因可能是xml文件出了问题。
=================================================
最后贴上跑通截图