当前位置:   article > 正文

九天毕昇深度学习平台常见环境问题及解决

九天毕昇

0 九天毕昇深度学习平台

九天毕昇是中国移动推出的一站式人工智能学习和实战平台,具有模型训练、比赛打榜、求职刷题等功能,其中最强大的功能是使用GPU训练深度学习模型。但是云服务器上训练模型与本地服务器训练模型的环境还是有一定差别,这导致我们在九天毕昇平台上复现论文代码的时候会出现各种各样意想不到的问题。本文整理了在九天毕昇平台上训练模型可能出现的一些问题及解决方案。

1 python库版本

运行一份代码之前首先要将配置运行环境和依赖库,论文作者一般会将所需依赖写在Readme文件或者requirements.txt文件中

requirements.txt

例如上图展示的就是requirements.txt文件中的内容,其中仅仅限制了torch版本>=1.2.0,所以一般会安装最新版本,但是这样可能会导致与cuda版本不匹配,因此在安装之前需要查看服务器的cuda版本,再查询cuda与pytorch版本的对应关系,找到合适的pytorch进行安装。

Pytorch官网(pytorch与cuda版本兼容关系)

安装的torch和torchvision版本必须与cuda版本兼容,代码展示的是版本兼容的一种安装情况

# 查看服务器cuda版本
nvcc -V 
# 九天cuda版本为10.1,安装依赖库时使用命令
pip install torch==1.4.0 torchvision==0.5.0
  • 1
  • 2
  • 3
  • 4

2 ModuleNotFoundError

问题:目录下有此文件却报错ModuleNotFoundError
原因:环境变量中没有包含项目文件夹目录,无法使用相对于项目目录的相对路径来import相关库和函数
解决:使用PYTHONPATH变量将项目路径加载到程序的环境变量中

# cd 项目文件夹 
# .代表将当前目录路径加入到环境变量
export PYTHONPATH=.
  • 1
  • 2
  • 3

3 CUDA out of Memory

  • 减小batchsize:减少同时处理的的图像数
  • 减小num_worker:减少并行线程数,因为并行读取数据时,数据会被挂载到gpu上。
    num_workers = 0:只有主进程加载batch
    num_workers = 1:只有一个worker进程加载batch,而主进程不参与数据加载
# 注:针对tensor的.to方法不是inplace的,若只是写成img.to(device),数据并不会被放到gpu中
lr_img = lr_img.to(device)
hr_img = hr_img.to(device)
  • 1
  • 2
  • 3
  • 定时(一个epoch跑完)清内存
gc.collect()
torch.cuda.empty_cache()
  • 1
  • 2

4 文件夹非空不能删除

九天毕昇的这个规定可能是为了防止用户误删文件而造成无法复原的后果,但是当文件夹下文件很多,或者显示文件删除的情况下仍无法删除此文件夹的情况下,可以使用Linux命令来强制删除。使用此命令之前一定要确定文件夹中再无重要的东西,再者就是一定不要写错文件路径

# 强制删除dirName文件夹
rm -rf dirName
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/403099
推荐阅读
相关标签
  

闽ICP备14008679号