本次调试代码来源谷歌Deeplab开源代码
首先是model_test过程:
1、按照官方文档 在 # From tensorflow/models/research/ 下添加路径,由于我是Windows环境下,所以$ SET PYTHONPATH=%cd%;%cd%\slim
linux环境下 $ export PYTHONPATH=$PYTHONPATH:pwd
:pwd
/slim
之后在cmd中输入echo %PYTHONPATH%查看路径是否添加成功。
2、测试需要在models/research/下进行,这样很不方便,想要在models/research/deeplab下进行,可以在models/research/deeplab/model_test.py中导入deeplab模块就可以了,一个例子如下
import sys
sys.path.append(’/path-to/models/research’) //ubantu系统下
3、之后出现No module named 'nets’的错误
在slim中运行setup.py文件,运行之前需要将其中包含的build移除。
python setup.py build
python setup.py install
4、继续出错:
可以看出是语法问题,但是不知道怎么改,在issue中看到了有人出现相同的问题,有大佬回答说:
I guess you use python>=3.0 , therefore the code in model_test.py line: 140
self.assertListEqual(scales_to_model_results.keys(), can not work. change it to self.assertListEqual(list(scales_to_model_results.keys()),
于是在指定位置进行修改后终于成功了!!!!
训练
1、首先下载VOC2012数据集
根据指示需要在/models/research/deeplab/datasets 文件夹下执行
$ sh download_and_convert_voc2012.sh 由于sh命令是Linux下,参照 如何在Windows 10安装和使用Linux的Bash shell 进行操作后,在cmd中输入bash后显示
原因是没有安装linux系统,通过提示在https://aka.ms/wslstore应用商店中安装ubantu系统,这里可以参考Windows 10运行Ubuntu子系统安装成功后,在cmd中输入bash就会自动跳到ubantu系统下,然后就可以愉快的下载了。
下载过程极其缓慢,用有线后快了许多,大概一个半小时就下载结束了。
虽然下载成功了,但是数据转换过程失败了,提示python:not found,应该是bash命令自动转到ubantu下执行文件,而刚才安装过ubantu后没有安装python的结果。接下来就是一坑接着一坑跳的过程,包括ubantu下没有安装cuda和cudnn而我却傻傻的安装了带有gpu的tensorflow,于是convert过程一直不成功。重新配置好环境后终于成功了。
2、Running the train/eval/vis jobs
这里按照官方给出的过程下载了预训练参数解压放在deeplab目录下,然后进行training时,会有奇怪的错误,于是在deeplab目录下使用sh local_test.sh命令进行训练,注意这里可以注释掉local_test.sh中不必要的操作。
train.py运行结果如下
eval.py运行结果如下
这个结果貌似不怎么样。。。
最后是vis.py运行结果
最终结果: