目录

主流云服务器

autoDL云服务器进行深度学习教程

1、购买autoDL云服务器

2、向服务器上传项目数据

3、解压服务器上的项目数据

4、终端训练

4.1 远程IDE

4.2  代码执行结束自动关机

4.3  查看GPU信息

4.4  查看进程的CPU和内存占用

4.5  提升GPU性能

5、GPU选型


笔者用云服务做深度学习项目,只是偶尔才会用到它。所以我就想找一款按量收费性价比较高的云服务器,故笔者使用autodl云服务器,云服务器地址为:AutoDL-品质GPU租用平台-租GPU就上AutoDL   笔者经过多次筛选,显卡种类多,对于自掏腰包的学生来说,性价比是真不错。

主流云服务器

笔者最近需要跑深度学习模型训练,在网上看了诸多云服务信息,市场上现存在云服务器有:autoDL云、恒源云、阿里云、腾讯云、华为云、天翼云、矩池云、谷歌云、百度云(飞浆paddle)、硅云、MistGPU、微软云等云服务器。下面进行分别阐述:

autoDL云:价格比较亲民,笔者对比这么多家,性价比是真的高,对于学生党全部9.5折。它上传数据快,方便,支持vscode,pycharm等在线编译代码。传输方式有:公网网盘、autodl网盘、jupyterlab、filezilla和xshell软件支持。

恒源云:笔者选了很久后,主要是价格上比autoDL云贵几毛钱其它方面都是很不错。

阿里云:市场比较大,国内外都有服务器,GPU架构并行运算能力较强。但是价格比较贵

腾讯云:

市场占有率高, 他的计费方式是竞价计费,价格随时都是浮动的,价高者拥有该服务器的使用权。

华为云:笔者不知为啥,因为注册华为账号一直都不成功。所以未查看到其价格形式和其它信息,读者可以自行了解。

天翼云:价格比较贵

矩池云:矩池云因为和诸多高校合作,故价格也贵。

谷歌云和微软云:因为服务器都在国外,上传/下载数据太慢,中途断掉,又得重新开始,虽然也有免费使用时长,但断线就很恼火。

百度云(飞浆paddle):百度云每天可以赠送算力卡(每天免费领取8点算力卡),也有免费基础版本的,但它有其专门的框架(paddle框架)。笔者是使用不习惯。

autoDL云服务器进行深度学习教程

1、购买autoDL云服务器

云服务器地址为:AutoDL-品质GPU租用平台-租GPU就上AutoDL ,进去注册账号后,进入算力市场,选择区域,服务器离你所在距离越近,传输速率越高。先选择区域,在选择你所需要的显卡型号,在选择云服务器,你可以根据云服务器的不同规格来选择你所需的服务器,当然价格也是有所不同。

根据自己所需,选择其中GPU显卡数量,首次租用云服务器,选择平台镜像,服务器会自动安装pytorch所需要的环境配置。当你运行过自己的项目后,并保存为镜像后,你就可以用你自己的镜像。笔者第一次用的平台镜像为:pytorch1.11.0+python3.8+cuda11.3 版本,服务器运行系统均为Linux  Ubuntu。而且该系统比较好的是他已经自带安装了miniaconda,很多常用的依赖库已经安装好了。

创建案例后,进入控制台,如图10所示。

图10

2、向服务器上传项目数据

方式1:首先进入图10中1(JupyterLab)位置,在如下界面中点击上传数据。

  1. 公网网盘,直接使用阿里云盘、百度网盘上传下载数据,强烈推荐
  2. AutoDL网盘 上传数据,优点简单而且不用开实例,缺点是网页不支持上传文件夹
  3. JupyterLab上传,和网盘类似,优点简单,但是只支持文件不支持文件夹
  4. scp命令支持文件和文件夹上传下载,由于是命令行执行,上手难度稍高
  5. FileZilla软件支持文件和文件夹,拖拉拽即可上传下载,推荐使用
  6. XShell软件支持管理SSH连接,而且集成了xftp,支持拖拉拽上传下载文件夹/文件,推荐使用

3、解压服务器上的项目数据

方式1:

由于安装的zip、rar包等都只能解压或压缩某一种压缩包,这里提供一个小工具,支持解压格式:.tar, .zip, .rar, .7z,支持压缩/打包格式:.zip.tar

# 下载安装工具
curl -L -o /usr/bin/arc http://autodl-public.ks3-cn-beijing.ksyun.com/tool/arc && chmod +x /usr/bin/arc# 压缩/打包
arc compress xxx.zip path/to/directory# 解压
arc decompress xxx.zip
或者解压到指定目录
arc decompress xxx.zip path/to/directory

有个别zip的压缩包使用上边的命令以及unzip命令都不能解压时,先检查文件大小,如果文件大小和源文件一样,那么尝试下面的命令解压:

apt-get update && apt-get install -y fastjar
jar xvf xxx.zip

方式2:

命令:zip、unzip、tar

zip和unzip分别正对与zip的压缩包压缩和解压,tar是Linux另外一种更通用的压缩解压工具

# zip和unzip。如果没有zip请使用apt-get update && apt-get install -y zip安装
user@seeta:/tmp/$ zip -r dir.zip test_directory/   # 将test_directory文件夹压缩为dir.zip文件
user@seeta:/tmp/$ unzip dir.zip   # 将dir.zip文件解压# tar. 以下参数c代表压缩,x表示解压,z代表压缩/解压为gz格式的压缩包
user@seeta:/tmp/$ tar czf dir.tar.gz test_directory/   # 将test_directory文件夹压缩为dir.tar.gz文件
user@seeta:/tmp/$ tar xzf dir.tar.gz   # 将dir.tar.gz文件解压# tar还可以用于压缩和解压其他格式的压缩文件,比如bz2
user@seeta:/tmp/$ tar cjf dir.tar.bz2 test_directory/   # 将test_directory文件夹压缩为dir.tar.bz2文件
user@seeta:/tmp/$ tar xjf dir.tar.bz2   # 将dir.tar.bz2文件解压

4、终端训练

方式一:在打开的JupyterLab页面中打开终端来执行(笔者推荐使用)。只要jupyterlab不出现重启(几乎不会),jupyterlab的终端就会一直运行,无论是本地主机断网还是关机。

运行代码:python xxx.py或者执行某个文件夹下的代码文件:python+该执行文件的路径。

在使用JupyterLab长时间跑代码的过程中强烈建议对日志重定向,防止断网后中间的日志没有了。使用方法:

# 日志重定向到train.log文件。即在你的命令后加上:> train.log 2>&1
python xxx.py > train.log 2>&1
# 实时查看日志
tail -f train.log

方式二:如需使用其他IDE远程开发,请参考VSCode(推荐)和PyCharm (推荐调试代码使用)

4.1 远程IDE

当远程IDE进行代码运行时,需要采取守护进程,好保护程序在运行时,防止断网导致程序运行中断。  守护进程方法 。

4.2  代码执行结束自动关机

不确定自己的代码需要执行多久结束,希望执行完成后立马关机。这类场景可以通过shutdown命令来解决。

# 假设您的程序原执行命令为
python train.py# 那么可以在您的程序后跟上shutdown命令
python train.py; shutdown      # 用;拼接意味着前边的指令不管执行成功与否,都会执行shutdown命令
python train.py && shutdown    # 用&&拼接表示前边的命令执行成功后才会执行shutdown。请根据自己的需要选择

或者在您的Python代码中执行shutdown命令,例如:

import osif __name__ == "__main__":# xxxxxxos.system("shutdown")

4.3  查看GPU信息

命令:nvidia-smi

user@seeta:/tmp/test_directory$ nvidia-smi
Mon Nov  8 11:55:26 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82       Driver Version: 440.82       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN X (Pascal)    Off  | 00000000:01:00.0  On |                  N/A |
| 31%   57C    P0    66W / 250W |    408MiB / 12194MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+
|   1  TITAN X (Pascal)    Off  | 00000000:04:00.0 Off |                  N/A |
| 93%   27C    P8    11W / 250W |      2MiB / 12196MiB |      0%      Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1450      G   /usr/lib/xorg/Xorg                            32MiB |
|    0      2804      G   /usr/lib/xorg/Xorg                           351MiB |
+-----------------------------------------------------------------------------+
Memory-Usage          # 内存的使用情况
408MiB / 12194MiB     # 前者408MiB代表已使用的显存,后者12194MiB代表总现存
GPU-Util              # GPU的使用率
2%                    # 使用率百分比

如果需要不停的输出GPU占用信息,那么使用nvidia-smi -l 1每隔1秒输出一次,或使用watch -n 1 nvidia-smi也是同样的效果

4.4  查看进程的CPU和内存占用

方法1:命令:top

Tasks:  11 total,   2 running,   9 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.3 us,  1.3 sy,  0.0 ni, 96.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 52801571+total, 45453059+free,  7807904 used, 65677196 buff/cache
KiB Swap:  2074620 total,  2074620 free,        0 used. 51678192+avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND             2316 root      20   0 21.846g 1.796g 244664 R 101.4  0.4   0:05.56 python               58 root      20   0  372352  84804  15540 S   1.4  0.0   0:05.40 jupyter-lab         59 root      20   0  713796  11288   7668 S   1.4  0.0   0:01.31 proxy               2395 root      20   0   45920   3940   3444 R   1.4  0.0   0:00.01 top                 1 root      20   0   25368   3724   3404 S   0.0  0.0   0:00.07 bash                 48 root      20   0   55060  24328   9728 S   0.0  0.0   0:00.33 supervisord         60 root      20   0   72304   5872   5140 S   0.0  0.0   0:00.01 sshd                 61 root      20   0 9756148 315032 156124 S   0.0  0.1   0:04.16 tensorboard         146 root      20   0 1582996   6964   5296 S   0.0  0.0   0:00.04 server               338 root      20   0   25824   4312   3800 S   0.0  0.0   0:00.18 bash                 481 root      20   0   25824   4544   4040 S   0.0  0.0   0:00.18 bash

如果有高负载(CPU使用率高)的情况,那么一般进程都会排在最上边,根据进程名称可以进行确认。那么这个进程占用的CPU可以通过%CPU字段读取出来,内存更复杂一些,但是一般看RES字段就够了。比如上边第一个Python进程CPU的占用率是101.4%,内存使用大小是1.796g(Tips:如果内存显示的单位和上述不同,按e键切换)

方法2:  使用平台提供的实例监控功能查看更为简便

4.5  提升GPU性能

如果发现训练速度明显很慢时,先排除是实例本身的问题,尝试调整网络结构或batch size把GPU压满,如测试脚本能正常压满GPU,请按照以下方式进行排查和调优。

检查NumPy

该项中招率非常高,所以优先检查。

NumPy会使用OpenBlas或MKL做计算加速。Intel的CPU支持MKL,AMD CPU仅支持OpenBlas。如果使用Intel的CPU,MKL会比OpenBlas有几倍的性能提升(部分矩阵计算),对最终的性能影响非常大。一般来说AMD CPU使用OpenBlas会比Intel的CPU使用OpenBlas更快,因此不用过份担心AMD CPU使用OpenBlas的性能差。

如果您在使用Intel CPU,先验证自己使用的NumPy是MKL还是OpenBlas版本。

有以上mkl字样代表是MKL的版本。

在使用清华等国内的Conda源时,安装NumPy时默认会使用OpenBlas的加速方案,您使用conda install numpy安装时会发现如下OpenBlas相关的包:

所以为了安装MKL的NumPy,解决方法如下:

# 第一步:卸载当前的NumPy
pip uninstall numpy (如果是conda安装的, conda uninstal numpy)
# 第二步:删除国内的Conda源
echo "" > /root/.condarc
# 第三步:重新安装NumPy
conda install numpy

如果以上步骤正确,那么在install numpy时将会看到:

重装NumPy以后再次执行您的程序,查看是否性能有提升。如果不是NumPy的原因,请继续看下文:瓶颈分析

5、GPU选型

可以参考GPU选型  模型。

云服务器做深度学习推荐+autoDL云服务器进行深度学习教程相关推荐

  1. 把区块链作为核心技术自主创新重要突破口:华为云可以做什么?【华为云分享】

    在近日上海举行的2019 QCon全球软件开发大会上,华为云区块链高级产品经理王磊在华为云技术专场<技术裂变中的可信软件开发>中发表演讲,分享了区块链在当前社会应用的社会价值,介绍了华为云 ...

  2. 知云文献翻译_工具推荐 | 知云学术翻译,让外文文献阅读不再难

    点击上方蓝字"Edtshare"一起玩耍 想必大家都经历过阅读外文文献的痛苦吧:专有名词不会.嵌套从句不懂.好不容易单词和句子都看懂了,连起来在说啥又一头雾水.笔者曾经深受其苦,所 ...

  3. 关键词词云怎么做_《excle词云怎么制作》 除了tableau ,还有什么数据工具可以制作词云啊?...

    词云可以用哪些编程语言制作? Python有专门的库,十分方便,简单,wordcloud.教程链接Python词库入门教程 别的语言我就不知道了 怎么把词频排名前50 的绘制词云 试一下 优词www. ...

  4. 初中生学Android开发,安卓手机软件学习推荐(几款适合中学生学习的软件)

    现在越来越多的学生配上了手机,如果能做到自觉学习,用上手机能轻松不少,今天就来推荐几款适合中学学生党学习的软件. Graph 这个软件听过的人不多,而且很多安卓软件市场好像是找不到的,但可以去浏览器下 ...

  5. 云服务器 文件服务,云服务 做文件服务器

    云服务 做文件服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装数据传 ...

  6. 服务器能做镜像文件吗,如何给服务器做镜像

    如何给服务器做镜像 内容精选 换一换 如果创建的私有镜像和云服务器在一个区域,后续可以为云服务器切换操作系统,选择私有镜像即可,如图1所示.切换操作系统的详细指导请参见"切换操作系统&quo ...

  7. 嘉为蓝鲸CMP:跳出云管看云管(IT运维/混合云/一体化/云管理)

    一.混合云管是大势所趋 (以下部分内容来自twt社区邓毓同学的分享内容,若有侵权,请联系删除) 随着各行业的业务的发展和技术的进步,公有云.私有云.混合云技术的应用也越来越广泛.云计算为企业带来了快速 ...

  8. 曙光服务器开机显示B9,曙光服务器做RAID步骤

    文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 曙光服务器做raid步骤 1.根据服务器屏幕提示,按相应的键进入raid界面,选择start后进入如图界面 2.选择Configurat ...

  9. 文件服务器做raid,曙光服务器做RAID步骤.pdf

    曙光服务器做 raid 步骤 1.根据服务器屏幕提示,按相应的键进入 raid 界面,选择 start 后进入如图界面 2.选择 Configuration Wizard 后回车 3.首先清空原有的 ...

最新文章

  1. SAP 谈谈PFCG创建ROLE后打包产生TR
  2. CF1B Spreadsheets
  3. 【SpringCloud】Feigin:伪装
  4. HIPS 自定义框架
  5. twisted系列教程十七–用inlineCallbacks来管理callbacks
  6. mysql简单的命令centos版
  7. shell脚本:监控MySQL服务是否正常
  8. 新加坡大数据初创公司 Latize 获 150 万美元风险融资
  9. 快速浏览Silverlight3 beta:鸡肋一样的WritableBitmap
  10. PHP配置问题(找不到指定模块)解决办法
  11. PMP考试教材有哪些?
  12. 64位计算机安装32位,告诉你64位电脑怎么装32位系统
  13. chromium git下载
  14. 算法训练 Beaver's Calculator (蓝桥杯)
  15. 【敬伟ps教程】图层相关知识
  16. 1919: kirito's 星爆气流斩(多重背包转换为01背包+二进制优化)
  17. 在python平台上利用pymol来查找PDB文件中蛋白质的相互作用位点
  18. 北京2008年第29届奥运会吉祥物五个福娃(组图)
  19. pytorch基础-使用 TORCH.AUTOGRAD 进行自动微分(5)
  20. javascript 常用的dom操作及源生事件

热门文章

  1. 计算机毕业设计Node.js+Vue行程规划app(程序+源码+LW+部署)
  2. 一伪淘宝html网页
  3. 通过自然训练的方式提升眼睛视力
  4. node 生产的env文件怎么注入_前端各种文件上传攻略,从小图片到大文件断点续传...
  5. 分子模拟matlab代码,【分享】关于Boltzmann 的计算代码(MATLAB)
  6. c++游戏五子棋游戏
  7. 客户体验对于企业来说有什么意义?
  8. shell 变量的默认值
  9. pyinstaller打包文件及warn文件中许多missing module 的解决方法
  10. java Type分类:GenericArrayType TypeVariable WildcardType ParameterizedType Class