系统:Ubuntu16.04
环境:CUDA 9.0
CUDNN v7.0.5
Python 3.6
首先clone tensorflow models的源码。我clone的时候的commit id 是8cf8446b6cb0ba360a687e885c58a623c68de3ed。提到这个commit id是和后面一个bug有关。
git clone [email protected]:tensorflow/models.git
安装依赖项。
sudo apt-get install python-pil python-numpy
pip install jupyter
pip install matplotlib
将slim的路径添加到~/.bashrc中。
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
在models/research/目录下执行如下命令,测试tensorflow 的deeplab是否配好。
python deeplab/model_test.py
说明环境已经ok。
tensorflow提供了一个脚本在PASCAL VOC 2012数据集上快速运行train,eval,vis,export_model。
进入models/research/deeplab目录。
sh local_test.sh
这个时候会出现Waiting for new checkpoint at xxx/models/research/deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/train无限循环等待,即issue6275。
这时候将分支切换到提交树的r1.12.0。
git checkout r1.12.0
再次运行sh local_test.sh,会报如下错误:
这时候需要将model_test.py的140行
self.assertListEqual(scales_to_model_results.keys(), expected_endpoints)
改为
self.assertListEqual(list(scales_to_model_results.keys()), expected_endpoints)
重新运行sh local_test.sh。
在models/research/deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/export目录下已经生成了frozen_inference_graph.pb。
在models/research/deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/vis/segmentation_results目录下有一系列的预测分割结果。