【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+(第二步)-----cityscapes数据集训练和预测

在查看本篇文章之前,请先查看博主的上一篇文章【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+(第一步)-----环境配置_努力弹琴的大风天的博客-CSDN博客

配置好环境之后,再进行接下来的操作

注意:本文原来是在Ubuntu18.04上测试的,后来在windows上搭建了环境,现在是在windows上测试的。

目录

一、源码、数据集和预训练下载

2.1 源码下载

2.2 cityscapes数据集准备

2.3 预训练模型预测

 二、预测

1.单张图片预测

一、源码、数据集和预训练下载

2.1 源码下载

源码位置:https://github.com/VainF/DeepLabV3Plus-Pytorch

该项目中有详细的复现过程代码,大家可参考复现代码以及本文测试这个项目。

点击:Code > Download ZIP 下载即可。

【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+(第二步)-----cityscapes数据集训练和预测_第1张图片

 下载完成后,解压到Ubuntu桌面(其它位置也可),得到项目文件夹DeepLabV3Plus-Pytorch-master。

2.2 cityscapes数据集准备

  •  数据集下载

cityscapes数据集需要注册登录才能下载,下载链接:

Login – Cityscapes Dataset

  • 数据集放置

下载完成后,进入DeepLabV3Plus-Pytorch-master/datasets/data,在其中创建cityscapes文件夹,将下载的两个文件解压到此处。数据集架构:

/datasets
    /data
        /cityscapes
            /gtFine
            /leftImg8bit

【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+(第二步)-----cityscapes数据集训练和预测_第2张图片

至此,数据集准备完毕。

2.3 预训练模型预测

在正式训练之前,可以使用预训练模型,查看最终的预测效果。

best_deeplabv3plus_mobilenet_cityscapes_os16.pth预训练模型下载(下载需要科学上网):

下载地址(任选一个即可):

https://www.dropbox.com/sh/w3z9z8lqpi8b2w7/AAB0vkl4F5vy6HdIhmRCTKHSa?dl=0

或者

https://share.weiyun.com/qqx78Pv5

本文只使用:best_deeplabv3plus_mobilenet_cityscapes_os16.pth。其它的可以自己下载测试

下载完成后,将其放置在DeepLabV3Plus-Pytorch-master/checkpoints中,然后切换到虚拟环境中,使用如下命令进行预测:

# 单张图片预测  test_results会生成在master中,是预测结果最终放置的位置
python predict.py --input datasets/data/cityscapes/leftImg8bit/train/bremen/bremen_000000_000019_leftImg8bit.png  --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints/best_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results

【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+(第二步)-----cityscapes数据集训练和预测_第3张图片整个文件夹预测:

# 整个文件夹预测
python predict.py --input datasets/data/cityscapes/leftImg8bit/train/bremen  --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints/best_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results/bremen

 二、训练

2.1 训练过程

进入pytorch虚拟环境中,使用如下代码进行训练:

# 根据自己的显卡设置相应的batch_size,显卡特别差的可能跑不起来本文3060显卡,设置为4
python main.py --model deeplabv3plus_mobilenet --dataset cityscapes  --gpu_id 1  --lr 0.1  --crop_size 768 --batch_size 4 --output_stride 16 --data_root ./datasets/data/cityscapes 

【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+(第二步)-----cityscapes数据集训练和预测_第4张图片

注意:

  • 其中一个epoch是将所有需要训练的图片训练一遍,cityscapes中2975张图片用于训练,所以,当batch_size为4的时候,训练一个epoch需要2975/4约等于744个iters。
  • 每50个Itrs会进行一次评估,把最近的一次训练模型和最好的一次训练模型保存,最终训练完成之后,在checkpoints中会有最好的训练模型;同时每50个迭代评估的时候,会评估平均交并比mIoU等指标

2.2 训练中的问题

1.​OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "C:\Users\Dafengtian.conda\envs\pytorch\lib\site-packages\torch\lib\cudnn_adv_train64_8.dll" or one of its dependencies.

可能是使用cpu在训练,将训练代码中--gpu_id 0改成--gpu_id 1

2.numpy.core._exceptions.MemoryError: Unable to allocate array with shape (1960931,) and data type int64

batch_size设置过大,在训练代码中,将batch_size改小。

你可能感兴趣的:(Deeplabv3+复现,pytorch,人工智能,python,深度学习,ubuntu)