
很多同学表示:出国没办法带GPU主机or MacOS不方便安装外接显卡
在此演示一种基于腾讯云(阿里云/Google云相同)的GPU主机训练的配置指南
在本文将讲解三种方法,配置难度依次升高:
1.SSH到GPU主机,然后使用shell命令运行python代码,完成模型训练
2.GPU主机开放Jupyter Web服务,浏览器中连接主机运行python代码
3.Pycharm连接到远程GPU主机,在Pycharm中运行代码
PS:本文选择腾讯云服务器的原因单纯是因为便宜,没有任何可用性/并发行/稳定性的侧重。
只要是SSH,那么连接方法都是通用的。意味着如果有连接实验室服务器的经验就会简单很多。有所不同的是实验室服务器训练时所需数据集可以在服务器磁盘上,而云服务器的训练数据需要额外存储/本地上传。
1.示例代码在CPU的训练时间(1.8GHz i5,8G DRAM)需要62.9秒
2.腾讯云官网cloud.tencent.com,点击购买
3.选择机器配置
一定要选【自定义配置】【按量计费】【地区选跟自己近的】【GPU机型】【具体机型看实际需要-此示例选择最便宜的P4】【镜像市场-GPU服务器Ubuntu 18.04带tensorflow】【按使用流量】
4.在镜像市场中选择镜像
5.配置机器
【端口情况任意-本例选择“放空全部端口”】【设置密码】【不启动定时销毁】。如果定时销毁可能会导致训练未完成则被销毁。最好的办法是在训练的代码最后保存模型,同时加一个云短信API,在训练结束时可以收到通知。
6.这步直接默认开通
7.开通后可以在控制台看到机器,记住IP地址,很重要。然后选择登陆
本次的IP是106.52.54.61
登陆有很多种,默认选择云上的terminal,可以有图形页面
如果选择zsh,bash登陆的话,则用命令:
ssh-q-l ubuntu-p 22 106.52.54.61
8.云上直接输密码登陆(或使用刚刚提到的SSH命令,两者相同!)
登陆后是这样
9.验证GPU是否可以使用(可跳过本步)
使用三个命令来查看“PCI总线外接设备、CUDA版本、GPU使用情况”:
lspci
cat/usr/local/cuda/version.txt
nvidia-smi
10.验证tensorflow是否可用GPU(可跳过本步)
在shell中使用python3
使用python语句:
import tensorflow as tf
sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))
quit()#退出python,返回shell
到此为止,全部配置就完成了。可以直接在bash中创建python文件,使用python3命令运行.py文件(tensorflow代码)。
下面配置Jupyter Web服务
11.安装Jupyter
按顺序在bash中输入命令:
pip3 install jupyter
echo PATH=~/.local/bin:$PATH>>.bashrc
echo export PATH>>.bashrc
source.bashrc
jupyter notebook–ip=0.0.0.0–port=8000
复制第二个红框中的token!!!
12.远程登陆jupyter
浏览器输入“IP:端口”,此例是https://106.52.54.61:8000。输入刚才复制的token进入jupyter。
新建python3运行环境
13.运行代码
在这写代码运行or把代码粘到这运行
运行结果:
只要11.2秒,远小于本地CPU所用的62.9秒
Jupyter Web可以远程访问,通过浏览器运行代码。
最后是使用Pycharm,直接用Pycharm连接远程服务器
14.Pycharm中添加服务器
在【Preferences】中选【Deployment】【+】【SFTP】
输入【服务器地址-106.52.54.61】【用户名-ubuntu】【密码】,然后测试连接是否成功
连接成功
配置“本地-服务器文件映射”【mapping】【本地路径】【云上路径(可直接写“/”,会自动配置。没特殊要求,单纯运行代码的话,此处不重要)】
15.配置运行环境
在【preferences】中选择【project interpreter】【V】【show all】(不选择本地解释器,选择remote解释器)
点击【+添加】
选择【SSH interpreter】【existing server configuration】【列表中选择刚才的服务器】【Move this server to IDE setting】
手动写明python3的路径
成功后可以看到远程运行环境中的配置,什么依赖Lib都没有的话说明导入失败。可以看到tensorflow-GPU(还有Pytorch也在)
16.运行
点击运行
只需要7.7秒
写在最后。本地CPU 62.9秒,Jupyter Web 11.2秒,Pycharm连接7.7秒。
阿里云和腾讯云在登陆名上有所差别,阿里云一般直接为root。
用完记得销毁服务器
面向初次使用者,略了很多验证的步骤。改进可以写在下面。
一些答疑:
1.为什么示例代码中没有指定GPU的部分?tensorflow默认调用最优资源,这是配置云环境文章,不是tensorflow-GPU代码教程。
2.为什么阿里云的服务器没有这个镜像?阿里云有一个基于CentOS的,一样用。服务器的用户登录名不同,其他无所谓。
3.如何预估我的训练时间?没办法,靠经验or先跑小样本。
4.为什么我的Pycharm中没有这个功能?professional版本才有这个功能,社区版没有。
5.为什么我代码在云上无法运行?请查看对应的tensorflow版本,请以云上版本为准。如果有import 3rd Lib依赖,请写在requirement.txt中。
6.我怎么知道我的代码能不能运行?先买小机器,再买大机器······
厦门商城系统开发现在网上购物的用户是非常多的,并且各个电商平台为了获得更多的顾客下单,对产品开通了保价的服务,京东全球购平台上也是相同如此,但是这个保价申请的时效是多久了? 1、数码、通讯、百货类商品,可以在7天内申请价保。申请成功,假设没有付款的订单…
码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.