一、硬件环境:
Ubuntu 20.04 LTS Operation System
NVIDIA TiTan XP GPU
二、软件环境:
GPU Driver:NVIDIA-Linux-x86_64-460.80.run
CUDA: Cuda 10.0
CUDNN: Cudnn 7.4.1 for Cuda 10.0
Anaconda:Anaconda3-2021.05-Linux-x86_64.sh
Pycharm
Pigcha
三、Tensorflow-gpu 1.15环境的配置:
其中,Tensorflow,CUDA,CUDNN均选择自己需要的版本来下载。
Reference:
驱动的安装:https://www.cnblogs.com/shyern/p/10606315.html#_label3
CUDA的安装:
https://developer.nvidia.com/cuda-toolkit-archive
CUDNN的安装:
https://developer.nvidia.com/zh-cn/cudnn
* 使用Firefox Web Browser 在密码验证时有问题,可以通过 Wechat Scan QR Code登录。
Tensorflow的安装:https://www.bilibili.com/video/BV1UE411N7gS
Tensorflow-CUDA-CUDNN版本对照表:
https://www.tensorflow.org/install/source Tips:
1.请先装驱动,尽量安装较高版本的驱动才能运行对应的CUDA。(向下兼容)
2.如果装完驱动之后返回图形界面时黑屏,请重装系统,之后使用nvidia-smi确认驱动是否安装成功。若未成功,请重新选择驱动版本进行安装。
3.DeepLabV3 框架只能在GPU工作情况下运行,因为有部分代码要求GPU参与工作,除非自行修改代码。
4.请在Linux环境下进行环境的配置,Win环境下会产生各种ERROR,无法下手。
5.Manjaro上的开源驱动,用不了。
6.若是在Anaconda下面创建的环境,可以通过指定CUDA版本进行CUDA的安装,但是没有对应版本的CUDNN库,可以将下载的CUDNN解压,直接替换Anaconda-pkg里CUDNN的内容,CUDA可以正常工作。
7.Pip推荐豆瓣源:https://pypi.douban.com/simple/
8.Anaconda推荐BFSU源:https://https://mirrors.bfsu.edu.cn/help/anaconda/
l检测代码:
import tensorflow as tf
a = tf.test.is_built_with_cuda() # 判断CUDA是否可以用
b = tf.test.is_gpu_available(
cuda_only=False,
min_cuda_compute_capability=None
) # 判断GPU是否可以用
print(a)
print(b)
四、DeepLabV3 _框架的配置与CityScapesScript测试集的语义分割:
Reference:
https://blog.csdn.net/malvas/article/details/88896283
Tips:
1.DeepLab是个工程项目,要把model_test.py, train.py,eval.py, vis.py同deeplab一并拉到自己新建的工程文件夹下运行。(自己新建的工程文件DeepLab_Test里面有【deeplab,model_test.py, train.py,eval.py, vis.py】)
2.Reference 里面没有的文件夹自己要新建。
3.CityScapesScript测试集下载需要.edu后缀的邮箱。
4.缺少的库,如:pillow, tf_slim, quaternion按照返回讯息进行下载即可。
5.Git clone境内对应Gitee地址:
// CityScapesScript标注集
git clone https://gitee.com/chanmanseui/cityscapesScripts.git
// DeepLab源码
git clone https://gitee.com/chanmanseui/models.git
6.Reference里面train,eval,vis指令错误的地方和更改后的指令:
# train.py
python train.py
--logtostderr
--training_number_of_steps=1000
#ERROR OCCURED
--train_split="train_fine"
--model_variant="xception_65"
--atrous_rates=6
--atrous_rates=12
--atrous_rates=18
--output_stride=16
--decoder_output_stride=4
--train_crop_size="769,769"
--train_batch_size=2
--dataset="cityscapes"
--tf_initial_checkpoint='/home/administractor/PycharmProjects/DeepLab_Test/deeplab/backbone/deeplabv3_cityscapes_train/model.ckpt'
--train_logdir='/home/administractor/PycharmProjects/DeepLab_Test/deeplab/exp/train_on_train_set/train'
--dataset_dir='/home/administractor/data/cityscapesScripts/tfrecord'
# eval.py
python eval.py
--logtostderr
--eval_split="val_fine"
--model_variant="xception_65"
--atrous_rates=6
--atrous_rates=12
--atrous_rates=18
--output_stride=16
--decoder_output_stride=4
--eval_crop_size="1025,2049"
--dataset="cityscapes"
--checkpoint_dir='/home/administractor/PycharmProjects/DeepLab_Test/deeplab/exp/train_on_train_set/train'
--eval_logdir='/home/administractor/PycharmProjects/DeepLab_Test/deeplab/exp/train_on_train_set/eval'
--dataset_dir='/home/administractor/data/cityscapesScripts/tfrecord'
# vis.py
python vis.py
--logtostderr
--vis_split="val_fine"
--model_variant="xception_65"
--atrous_rates=6
--atrous_rates=12
--atrous_rates=18
--output_stride=16
--decoder_output_stride=4
--vis_crop_size="1025,2049"
--dataset="cityscapes"
--colormap_type="cityscapes"
--checkpoint_dir='//home/administractor/PycharmProjects/DeepLab_Test/deeplab/exp/train_on_train_set/train'
--vis_logdir='/home/administractor/PycharmProjects/DeepLab_Test/deeplab/exp/train_on_train_set/vis'
--dataset_dir='/home/administractor/data/cityscapesScripts/tfrecord'
* 最终结果: