代码及相关库的下载
- 从github上下载SegNet-tensorflow的代码,命令如下:
$git clone https://github.com/tkuanlun350/Tensorflow-SegNet.git SegNet
- 安装readme中要求的库。
$pip install tensorflow-gpu==1.10
$pip install pillow
$pip install scikit-image
scikit-image 需要其他库如matplotlib等,如果装的时候遇到问题,按提示信息把依赖的库都装上就行。
注意:这里的tensorflow版本一定要适配,不然会出现loaded runtime CuDNN library:7.1.4 but source was compiled with 7.2.1 这样版本不兼容的问题。
3. 下载训练用数据集CamVid
下载地址:https://github.com/alexgkendall/SegNet-Tutorial
下载其中的Camvid文件夹,然后放在SegNet目录下。
编译SegNet-tensorflow代码
- 进入下载的SegNet的代码根目录下,新建一个Logs的文件夹用来存放日志。
$mkdir Logs
-
用 gedit 打开 example.sh,把train那一行的注释号取消掉,分别修改log_dir, image_dir和test_dir为相应的路径,保存退出。
-
用gedit打开CamVid下的train.txt, test.txt 和 val.txt, 使用查找和替换功能将/SegNet 统一替换成安装的路径。
注意:这里的路径最好使用绝对路径,如直接安装在home下,使用/home/用户名/SegNet/Logs这样的路径。路径不对可能会出现OutOfRangeError的错误,可能出现的错误信息如下:
OutOfRangeError (see above for traceback): RandomShuffleQueue '_3_shuffle_batch_1/random_shuffle_queue' is closed and has insufficient elements (requested 3, current size 0)
[[Node: shuffle_batch_1 = QueueDequeueManyV2[component_types=[DT_FLOAT, DT_UINT8], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/device:CPU:0"](shuffle_batch_1/random_shuffle_queue, shuffle_batch_1/n)]]
出现这个错误时需要先确认所有设置的路径是否正确。
训练数据集
全部配置好之后,直接在SegNet根目录下运行 example.sh 就可以开始训练了。
bash example.sh
PS: 如果出现找不到/GPU:0这样的错误,首先确认tensorflow-gpu是否安装正确,其次检查GPU设备名是否正确。如果不想指定运行的设备名,可在文件夹中的 Utils.py 中注释掉如下行代码:
with tf.device('/gpu:0'):
如果想在cpu上跑,也可直接改成‘/cpu:0’。但是…时间上就不好说了…
本文总结了SegNet-tensorflow的编译过程,包括从github下载代码、安装依赖库,特别是解决tensorflow版本兼容问题。同时,详细介绍了数据集CamVid的下载及放置,并提供了训练前的配置步骤,如创建Logs文件夹、修改配置文件路径。在训练过程中,强调了路径正确性对避免OutOfRangeError错误的重要性,以及处理GPU设备名问题的建议。
1万+

被折叠的 条评论
为什么被折叠?



