赞
踩
题外话
讲下博主为啥选择 AutoDL,其实最开始的时候,博主有一台2070和3080Ti,但是 显存都略小,一个8G一个12G,对于稍微大点的模型,Batchsize都很小,复现论文效果很都难,特别是在自己小论文需要的时候,就真的很缺设备。没办法,老师没钱,自己也买不起,只能将目光转移至云服务,对比了阿里云、腾讯云、百度云、华为云等,价格都贵的离谱,一小时动辄20+,一天下来就400+了,太贵太贵,一篇论文下来,都可以买两台显卡了。此外还有Colab 等云服务,不过没怎么体验过。当然了,如果小伙伴们用的是Paddle的话,必须推荐百度的 Ai Studio,可以免费试用,而且Paddle的架构和Pytorch的大体一致,学习起来也快,还是很推荐的。
最后就是AutoDL,虽然之前听说过,但是没使用过,好在,在我困惑的时候,同组的一个小伙伴给我推荐了一次,然后就马上注册体验了下,价格是真的便宜,就拿3090来说,一小时才1.5左右,一天下来也才40左右,比其他云顺眼多了,特别是学生党,简直就是我们的福星。而且上面有专门的教程,一般的问题都可以查到,而且使用也是方便的,本身提供20G的系统盘,可以用来放代码相关的数据,数据盘有50G,一般的数据集都是够用的,环境而是安装好的,可以直接上手用。
点击链接注册体验 https://www.autodl.com/ ,新人还有10元的体验券
博主用的数据集是 COCO2017,在AutoDL中的路径是 /root/autodl-pub/COCO2017
,系统盘只有20G,如果将数据集解压到系统盘的话,很可能会报错 disk quota exceeded(超出磁盘配额)
。因此,我们将数据集解压至AutoDL提供的 数据盘 /root/autodl-tmp
AutoDL本身收集了常见的数据集,在
/root/autodl-pub/
路径下,而且不算在数据盘空间
cd /root/autodl-pub
unzip -d /root/autodl-tmp/ ann*.zip
unzip -d /root/autodl-tmp/ val*.zip
unzip -d /root/autodl-tmp/ test*.zip
unzip -d /root/autodl-tmp/ train*.zip
#1、把文件解压到当前目录下 unzip test.zip #2、如果要把文件解压到指定的目录下,需要用到-d参数。 unzip -d /temp test.zip #3、解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数 unzip -n test.zip unzip -n -d /temp test.zip #4、只看一下zip压缩包中包含哪些文件,不进行解压缩 unzip -l test.zip #5、查看显示的文件列表还包含压缩比率 unzip -v test.zip #6、检查zip文件是否损坏 unzip -t test.zip #7、将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件 unzip -o test.zip -d /tmp/
AutoDL虽然提供了上传下载的功能,但是下载只对单个的文件有效,对于文件夹则是无法使用,因此,就需要对文件夹进行压缩后,在下载到本地了
zip -r -q -o pack.zip mark/
上面命令将目录 mark/ 下的所有文件,打包成一个压缩文件,并查看了打包后文件的大小和类型。第一行命令中,
-r 参数表示递归打包包含子目录的全部内容,
-q 参数表示为安静模式,即不向屏幕输出信息,
-o,表示输出文件,需在其后紧跟打包输出文件名。
zip -r -e o pack.zip mark/
接着输入两次密码就可以了
AutoDL配有Miniconda,并且使用显卡运行情况下,Miniconda是调用CUDA版本的Pytorch,大家不需要单独安装,毕竟安装期间也是收费的。
AutoDL 默认情况下是没有创建环境的,需要我们单独创建自己的环境,但是!创建完环境之后,并不能直接使用,如果直接进入环境的话,则会出现如下的错误
这个错误是因为我们没有初始化 conda 所造成的,首先我们需要通过 echo $SHELL
命令查看,系统默认的 shell 是哪个,然后再通过 conda init bash && source /root/.bashrc
命令进行初始化 conda ,初始化完之后,会给出一些AutoDL 的系统信息,到此即可
# 查看系统所使用的 shell
echo $SHELL
# 初始化 conda
conda init bash && source /root/.bashrc
然后就可以自行安装一些自己所需要的库了。AutoDL 已经帮忙安装好好 对应版本的Pytorch、torchvision等库了,无需重复安装
在win系统上面,博主一般是直接查看「任务管理器里面的性能」,进行对GPU信息的查看。但是任务管理器里面只能对GPU的内存、温度、占用率等信息监视,不能够详细。且此方法只能够在win系统上面使用,Linux上面无法使用。
那么在Linux系统上面个人是比较推荐使用 nivtop 库的,可以通过 pip install nvitop
直接进行安装,安装完之后在 终端输入 nvitip
即可,下图是监视界面。
nvitop 不仅可以在 Linux系统上面使用,也可以在 win系统上面使用,使用方法一样
除了使用nvitop 还可以使用 nvida-smi 命令进行查看
nvidia-smi:查看当前的显卡使用
nvidia-smi -L:列出所有显卡的信息
nvidia-smi -l 2:动态显示显卡使用信息,每一秒更新一次,参数值可以自己修改
nvida-smi -lms:循环动态显示
nvidia-smi dmon:设备监视(device monitor)
nvidia-smi -i n:显示指定的显卡(如果你有多块显卡,n的值对应显卡的位置)
通过 nvidia-smi -l 2
命令实时显示时,会在终端不断输出监控信息,个人觉得不如 nvitop 等价清晰简约
AutoDL 提供 tensorboard 监控,只是需要将日志信息放置在 /root/tf-logs
否则无法调取 tensorboard
cp -r ./runs/Nov22-16-54\ resnet101_evolution_head_COCO\ 2017/ /root/tf-logs/
cd /root
tensorboard --logdir=tf0logs
这一部分是AutoDL已经安装好的,在此只是记录下,便于日后自己需要
如果AutoDL安装的PyTorch和CUDA版本不是我们需要的,需要单独安装时,首先可以在AutoDL 中选择 Miniconda/CUDA=1x.x 的平台镜像,迫不得已的情况下再自行安装
Pytorch 与 CUDA 有对应要求,如Pytorch=1.9.0 需要CUDA=11.1
通过 nvidia-smi 查看到的 CUDA信息,上面的驱动版本是安装的最高版本,并不代表实例安装的就是CUDA版本
终端中执行查看默认镜像自带的CUDA版本(安装目录为/usr/local/):
查询平台内置镜像中的cuda版本
$ ldconfig -p | grep cuda
libnvrtc.so.11.0 (libc6,x86-64) => /usr/local/cuda-11.0/targets/x86_64-linux/lib/libnvrtc.so.11.0
libnvrtc.so (libc6,x86-64) => /usr/local/cuda-11.0/targets/x86_64-linux/lib/libnvrtc.so
libnvrtc-builtins.so.11.0 (libc6,x86-64) => /usr/local/cuda-11.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.11.0
查询平台内置镜像中的cudnn版本
$ ldconfig -p | grep cudnn
libcudnn_ops_train.so.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8
libcudnn_ops_train.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so
libcudnn_ops_infer.so.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8
libcudnn_ops_infer.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so
上边的输出日志.so
后的数字即为版本号。如果你通过conda安装了cuda那么可以通过以下命令查看:
$ conda list | grep cudatoolkit
cudatoolkit 10.1.243 h6bb024c_0 defaults
$ conda list | grep cudnn
cudnn 7.6.5 cuda10.1_0 defaults
安装其他版本的CUDA/cuDNN
优点:简单
缺点:一般不会带头文件,如果需要做编译,则需要照方法二安装
方法:
$ conda install cudatoolkit==xx.xx
$ conda install cudnn==xx.xx
如果你不知道版本号是什么那么可以搜索:
$ conda search cudatoolkit
Loading channels: done
# Name Version Build Channel
cudatoolkit 9.0 h13b8566_0 anaconda/pkgs/main
cudatoolkit 9.2 0 anaconda/pkgs/main
cudatoolkit 10.0.130 0 anaconda/pkgs/main
cudatoolkit 10.1.168 0 anaconda/pkgs/main
cudatoolkit 10.1.243 h6bb024c_0 anaconda/pkgs/main
cudatoolkit 10.2.89 hfd86e86_0 anaconda/pkgs/main
cudatoolkit 10.2.89 hfd86e86_1 anaconda/pkgs/main
cudatoolkit 11.0.221 h6bb024c_0 anaconda/pkgs/main
cudatoolkit 11.3.1 h2bc3f7f_2 anaconda/pkgs/main
CUDA下载地址:https://developer.nvidia.com/cuda-toolkit-archive
安装方法:
下载.run格式的安装包后:
$ chmod +x xxx.run # 增加执行权限
$ ./xxx.run # 运行安装包
cuDNN下载地址:https://developer.nvidia.com/cudnn
先解压, 后将动态链接库和头文件放入相应目录
$ mv cuda/include/* /usr/local/cuda/include/
$ chmod +x cuda/lib64/* && mv cuda/lib64/* /usr/local/cuda/lib64/
安装完成以后,增加环境变量:
$ echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:${LD_LIBRARY_PATH} \n" >> ~/.bashrc
$ source ~/.bashrc && ldconfig
提示:
默认镜像都内置了最原生的CUDA和cuDNN,如果自己安装了cudatoolkits等,那么一般会默认优先使用conda中安装的cudatoolkits,
最后,如果小伙伴也觉得AutoDL不错的话,可以点击链接注册体验下https://www.autodl.com/ 。通过邀请注册,还可以获得 10元代金券,相当于可以免费试用10元。觉得不错的话,再充值使用,毕竟薅羊毛的地方越来越少了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。