原文链接:https://www.jianshu.com/p/4ead0b0b42b5
很多同学表示:出国没办法带GPU主机 or MacOS不方便安装外接显卡 在此演示一种基于腾讯云(阿里云/Google云相同)的GPU主机训练的配置指南
首先是一份本地能跑通的Python3 + tensorflow训练代码:简单的Tensorflow识别MNIST代码
在本文将讲解三种方法,配置难度依次升高: 1. SSH到GPU主机,然后使用shell命令运行python代码,完成模型训练 2. GPU主机开放Jupyter Web服务,浏览器中连接主机运行python代码 3. Pycharm连接到远程GPU主机,在Pycharm中运行代码
PS:本文选择腾讯云服务器的原因单纯是因为便宜,没有任何可用性/并发行/稳定性的侧重。 只要是SSH,那么连接方法都是通用的。意味着如果有连接实验室服务器的经验就会简单很多。有所不同的是实验室服务器训练时所需数据集可以在服务器磁盘上,而云服务器的训练数据需要额外存储/本地上传。
示例代码在CPU的训练时间(1.8GHz i5, 8G DRAM)需要62.9秒
腾讯云官网 http://cloud.tencent.com,点击购买
选择机器配置
一定要选【自定义配置】【按量计费】【地区选跟自己近的】【GPU机型】【具体机型看实际需要-此示例选择最便宜的P4】【镜像市场-GPU服务器Ubuntu 18.04带tensorflow】【按使用流量】
在镜像市场中选择镜像
配置机器 【端口情况任意-本例选择“放空全部端口”】【设置密码】【不启动定时销毁】。如果定时销毁可能会导致训练未完成则被销毁。最好的办法是在训练的代码最后保存模型,同时加一个云短信API,在训练结束时可以收到通知。
这步直接默认开通
开通后可以在控制台看到机器,记住IP地址,很重要。然后选择登陆
本次的IP是106.52.54.61
登陆有很多种,默认选择云上的terminal,可以有图形页面 如果选择zsh,bash登陆的话,则用命令: ssh -q -l ubuntu -p 22 106.52.54.61
云上直接输密码登陆(或使用刚刚提到的SSH命令,两者相同!)
登陆后是这样
验证GPU是否可以使用(可跳过本步)
使用三个命令来查看“PCI总线外接设备、CUDA版本、GPU使用情况”: lspci cat /usr/local/cuda/version.txt nvidia-smi
验证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
按顺序在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!!!
远程登陆jupyter
浏览器输入“IP:端口”,此例是http://106.52.54.61:8000。输入刚才复制的token进入jupyter。
新建python3运行环境
运行代码
在这写代码运行 or 把代码粘到这运行
运行结果:
只要11.2秒,远小于本地CPU所用的62.9秒
Jupyter Web可以远程访问,通过浏览器运行代码。
Pycharm中添加服务器
在【Preferences】中选【Deployment】【+】【SFTP】
输入【服务器地址 - 106.52.54.61】【用户名 - ubuntu】【密码】,然后测试连接是否成功
连接成功
配置“本地-服务器文件映射”【mapping】【本地路径】【云上路径(可直接写“/”,会自动配置。没特殊要求,单纯运行代码的话,此处不重要)】
配置运行环境 在【preferences】中选择【project interpreter】【V】【show all】(不选择本地解释器,选择remote解释器)
点击【+ 添加】
选择【SSH interpreter】【existing server configuration】【列表中选择刚才的服务器】【Move this server to IDE setting】
手动写明python3的路径
成功后可以看到远程运行环境中的配置,什么依赖Lib都没有的话说明导入失败。可以看到tensorflow-GPU(还有Pytorch也在)
运行
点击运行
只需要7.7秒
阿里云和腾讯云在登陆名上有所差别,阿里云一般直接为root。
用完记得销毁服务器
一些答疑:
原文链接:https://www.jianshu.com/p/4ead0b0b42b5