欢迎大家批评指正
一、恒源云服务器
深度学习的实验离不开算力的支持,在计算资源有限的情况下,使用云服务器进行深度学习训练是一个不错的选择。
这里我使用的是恒源云平台
1.进行账号注册
可以使用手机验证登录
2.学生认证
恒源云对学生有很大优惠
3.租借实例
以我为例,我租借的是单卡3090,可以选择按量付费和按周付费,由于跑实验需要长时间使用,按量付费很有可能需要和别人抢卡对我来说太麻烦了。这里我选择的是Pytorch1.11 Cuda11.3 Python3.8的版本。
二、VSCODE连接远程服务器
1.这个步骤很多文章中都有提到,可以参考VSCODE连接远程服务器,其实对熟悉这个操作的人来说这步其实很简单,只需要输入对应的账号和密码即可。
2.通过在服务器端下载python扩展,以实现后续成功编译
若不在服务器上下载python插件,编译器会找不到编译环境,无法编译。
三、配置服务器mmsegmentation环境
1.环境的配置是很让人头疼的,我当初没有选择mmsegmentation镜像,因为担心恒源云官网mmsegmentation镜像版本太老,所以便自己创建了一个没有mmsegmentation镜像的。
2.使用服务器自带的(base)环境,如图所示:
激活环境
conda activate base
激活成功,查看是否能找到cuda
按上图步骤依次输入
python
import torch
torch.__version__
torch.cuda.is_available()
不出意外的话返回为True,如果返回为False则说明torch和cuda的版本不对,这个就需要自己到pytorch官网进行选择对应的pytorch和cuda下载。选择对应版本的pytorch和cuda
3.安装mmsegmentation
这里参考官方文档的最佳实践,由于我们使用了原来的base环境,所以创建虚拟环境和安装pytorch的步骤可以省略,如下图:
接下来按照最佳实践进行配置即可。
最佳实践中会有一个验证程序,运行后的结果是这样的
四、mmsegmentation训练自己的数据集
1.这个环节我是参考这个大佬的博客进行的AESA相控阵,前面的步骤按照他的要求来是没有问题的;
2.但是,在所有配置确认完之后,会报出一个AttributeError,其原因是,/hy-tmp/mmsegmentation/mmseg/datasets/
,路径下自己定义的dataset根据stare.py直接复制过来的会出错,只需要把最后一行代码注释掉即可。
3.同时,mmsegmentation二分类图像的mask像素不能为0,255,而是要求为0,1
因此需要对掩码图像进行一个转换,以下是批量将图片像素由0,255转化为0,1的python脚本
import cv2
import os
path = '/hy-tmp/mmsegmentation/trainData/***' #自己定义路径
path_save = '/hy-tmp/mmsegmentation/trainData/***/' #自己定义路径
name_list = os.listdir(path)
for name in name_list:
print(name)
img_path = os.path.join(path, name)
img = cv2.imread(img_path,-1)
img = img/255
cv2.imwrite(path_save + str(name), img)
#img = cv2.imread('/media/cyy_1/mmsegmentation/my_data/potsdam/ann_dir/train/3.png',-1)
#img = img/255
#print(img)
#cv2.imwrite('image.png',img)'