window环境下进行deeplab_tensorflow实验之第一阶段

window环境下进行deeplab_tensorflow实验之第一阶段

第一阶段,安装,配置环境

deeplab源代码已经被谷歌集成在GitHub中tensorflow/models。

之后我会持续更新讲解整个deeplab源代码中各个文件、代码和文档,以及对源代码的详细注释讲解。

本文不设计deeplab理论,因此就算不了解deeplab原理和模型结构的读者仍可操作。

step1. 下载tensorflow/models

deeplab文件目录图如下(Note:此处需下载官方github上最新的models文件,很多网上的较老的models中会缺少不少的文件)

step2. 安装依赖库

deeplab 依赖以下的一些库:(此处官方github上也有介绍,见https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/installation.md)

  • Numpy
  • Pillow 1.0
  • tf Slim (which is included in the “tensorflow/models/research/” checkout)
  • Jupyter notebook
  • Matplotlib
  • Tensorflow

Special Note:

先讲一下tensorflow_gpu,cudacudnn三者之间的版本对应关系:

tensorflow_gpu1.5/1.6/以上 —— cuda9.0 —— cudnn7.0
tensorflow_gpu1.3/1.4 —— cuda8.0 —— cudnn6.0/5.0

而deeplab要求tensorflow1.6以上,即电脑,工作站或服务器上cuda一定要是v9.0.

step3. Windows系统中添加tf.slim的路径至系统

在 deeplab/g3doc/installation.md 中提到,安装deeplab需要将 research/slim 路径加入 PYTHONPATH 中去,官方给出的方法是在每次运行之前都执行,但仅在linux系统中起作用

export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

windows 系统下的解决方案为:在py脚本中动态添加地址

将 deeplab 文件夹下的 train.py, eval.py, vis.py, export_model.py 和model_test.py这5个脚本的开头加语句,没错四个文件都要加(必须加在 import deeplab 语句之前)。

import sys
sys.path.append(r'D:\Code\tf-models\research')
sys.path.append(r'D:\Code\tf-models\research\slim')  # 以上两处的路径请按照真实的路径添加

step4. 本地环境测试

在tensorflow/models/research/下运行model_test.py

# From tensorflow/models/research/
python deeplab/model_test.py

如果环境正确,则提示:

Ran 5 tests in 10.758s

发生错误1:
window环境下进行deeplab_tensorflow实验之第一阶段_第1张图片

解决1(来自github中tensorflow/models/issues/5523)
因为作者使用python2写的源代码,而我使用python> = 3.0,因此model_test.py的第140行的代码无效,因为在python2中dict.keys()返回的是列表,而在python3中dict.keys()返回的是迭代器。即:

self.assertListEqual(scales_to_model_results.keys(),
                               expected_endpoints)

改为:

self.assertListEqual(list(scales_to_model_results.keys()),
                               expected_endpoints)

Note1:源代码中的类似filename_test.py(文件名带有_test)的格式文件都是用来测试filename.py所需要的环境是否正确。如

  • common_test.py 与 common.py
  • model_test.py 与 model.py

Note2:(如果有必要)

local_test.sh: 测试整个有关deeplab训练voc2012数据集的代码是否能正常运行,默认为xception模型

local_test_mobilenetv2.sh: 测试mobilenetv2模型时,整个deeplab模型代码是否能够正常运行

此处.sh文件可在git bash上运行,不同于linux系统,具体在tensorflow/models/research/deeplab/文件下:

# From tensorflow/models/research/deeplab
# local_test_mobilenetv2.sh同理
./local_test.sh 

结论

到此,第一阶段结束,deeplab环境配置成功

你可能感兴趣的:(语义分割,deeplab,tensorflow)