从0开始使用腾讯云GPU服务器

原文链接: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秒

从0开始使用腾讯云GPU服务器_第1张图片

从0开始使用腾讯云GPU服务器_第2张图片

腾讯云官网 http://cloud.tencent.com,点击购买

从0开始使用腾讯云GPU服务器_第3张图片

选择机器配置
一定要选【自定义配置】【按量计费】【地区选跟自己近的】【GPU机型】【具体机型看实际需要-此示例选择最便宜的P4】【镜像市场-GPU服务器Ubuntu 18.04带tensorflow】【按使用流量】

从0开始使用腾讯云GPU服务器_第4张图片

在镜像市场中选择镜像

从0开始使用腾讯云GPU服务器_第5张图片

配置机器 【端口情况任意-本例选择“放空全部端口”】【设置密码】【不启动定时销毁】。如果定时销毁可能会导致训练未完成则被销毁。最好的办法是在训练的代码最后保存模型,同时加一个云短信API,在训练结束时可以收到通知。

从0开始使用腾讯云GPU服务器_第6张图片

这步直接默认开通

从0开始使用腾讯云GPU服务器_第7张图片

开通后可以在控制台看到机器,记住IP地址,很重要。然后选择登陆

从0开始使用腾讯云GPU服务器_第8张图片

本次的IP是106.52.54.61

登陆有很多种,默认选择云上的terminal,可以有图形页面 如果选择zsh,bash登陆的话,则用命令: ssh -q -l ubuntu -p 22 106.52.54.61

云上直接输密码登陆(或使用刚刚提到的SSH命令,两者相同!)

从0开始使用腾讯云GPU服务器_第9张图片

登陆后是这样

验证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 Web服务

安装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

从0开始使用腾讯云GPU服务器_第10张图片

复制第二个红框中的token!!!

远程登陆jupyter
浏览器输入“IP:端口”,此例是http://106.52.54.61:8000。输入刚才复制的token进入jupyter。

从0开始使用腾讯云GPU服务器_第11张图片

新建python3运行环境

从0开始使用腾讯云GPU服务器_第12张图片

运行代码
在这写代码运行 or 把代码粘到这运行

从0开始使用腾讯云GPU服务器_第13张图片

运行结果:

从0开始使用腾讯云GPU服务器_第14张图片

只要11.2秒,远小于本地CPU所用的62.9秒

Jupyter Web可以远程访问,通过浏览器运行代码。

最后是使用Pycharm,直接用Pycharm连接远程服务器

Pycharm中添加服务器

从0开始使用腾讯云GPU服务器_第15张图片

在【Preferences】中选【Deployment】【+】【SFTP】

从0开始使用腾讯云GPU服务器_第16张图片

输入【服务器地址 - 106.52.54.61】【用户名 - ubuntu】【密码】,然后测试连接是否成功

连接成功

从0开始使用腾讯云GPU服务器_第17张图片

配置“本地-服务器文件映射”【mapping】【本地路径】【云上路径(可直接写“/”,会自动配置。没特殊要求,单纯运行代码的话,此处不重要)】

配置运行环境 在【preferences】中选择【project interpreter】【V】【show all】(不选择本地解释器,选择remote解释器)

点击【+ 添加】

从0开始使用腾讯云GPU服务器_第18张图片

选择【SSH interpreter】【existing server configuration】【列表中选择刚才的服务器】【Move this server to IDE setting】

从0开始使用腾讯云GPU服务器_第19张图片

手动写明python3的路径

从0开始使用腾讯云GPU服务器_第20张图片

成功后可以看到远程运行环境中的配置,什么依赖Lib都没有的话说明导入失败。可以看到tensorflow-GPU(还有Pytorch也在)

从0开始使用腾讯云GPU服务器_第21张图片

运行

从0开始使用腾讯云GPU服务器_第22张图片

点击运行

从0开始使用腾讯云GPU服务器_第23张图片

只需要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. 我怎么知道我的代码能不能运行? 先买小机器,再买大机器······

原文链接:https://www.jianshu.com/p/4ead0b0b42b5

你可能感兴趣的:(服务器,云服务器,云主机,云服务,云服务器,阿里云,腾讯云,华为云)