对于研究深度学习的朋友来说,GPU服务器是必不可少的,但是对于很多朋友来说可能没有现成的昂贵GPU服务器供使用,因此利用云服务器来训练模型成为另一个选型。谷歌云较其他云服务器(AWS,阿里云等等)的优势在于新注册账号有$300美金的免费使用额度,对于手头并不宽裕的学生党来说这可能是一个大的利好消息。今天我就来分享一下我是如何从头开始搭建基于谷歌云的深度学习平台。

第一步,

注册谷歌账号,登陆谷歌云网站,绑定visa信用卡,领取$300免费使用额度(这一步比较简单,有不清楚的地方google一下~)。PS:1.可能需要翻墙,因为我可以翻墙,没有试过不翻墙是否能完成这一步。2.听说最近好像要先花费$25才能得到免费额度。。。

第二步,

申请GPU配额。谷歌服务器提供三种GPU,分别是K80,P100和V100,大家可以根据需要申请。初学者一般K80就够用了。PS:申请提交之后需要一定的时间审核 。

第三步,

进入谷歌云控制台,选择computer engine,打开VM(Visual Machine),点击创建实例;

Cpu选择4核15G内存,GPU选择K80

系统选择Ubuntu16.04,硬盘选择200G机械硬盘。

防火墙流量选项都勾选上。

完成之后点击创建按钮,等待几分钟之后,完成VM实例的创建。

第四步,

安装深度学习的软件环境。

1.安装anoconda

wget http://repo.continuum.io/archive/Anaconda3-5.0.0-Linux-x86_64.sh

bash Anaconda3-5.0.0-Linux-x86_64.sh

PS:可以选择下载安装不同的anaconda版本

为了立刻使用 Anaconda,读取你的启动文件:

source ~/.bashrc

2.安装cuda,cudnn

安装CUDA运行时环境, 首先确认一下系统应该至少没有安装除nvidia-common之外的任何nvidia的包:

dpkg -l | grep -i nvidia

否则使用以下命令删除多余的包及配置文件:

sudo apt-get remove --purge name_of_ package

sudo apt-get autoremove

然后我们需要下载CUDA的安装包和cuDNN:

sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

sudo wget http://developer.download.nvidia.com/compute/redist/cudnn/v6.0/cudnn-8.0-linux-x64-v6.0.tgz

sudo wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/patches/2/cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64-deb

接下来安装驱动和运行时:

sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64.deb

sudo apt-get update

查看可用的CUDA运行时版本:

sudo apt-cache policy cuda

安装CUDA8.0

sudo apt-get install cuda = 8.0.61-1

添加源并更新到最新驱动:

sudo add-apt-repository ppa:graphics-drivers/ppa

这里记得需要敲回车键确认添加源

sudo apt-get update

sudo apt-get upgrade

sudo reboot

安装cuDNN

tar -xvf cudnn-8.0-linux-x64-v6.0.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

设置环境变量:

sudo vim ~/.bashrc

在文件最后添加下面内容:

export LD_LIBRARY_PATH = " $LD_LIBRARY_PATH :/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"

export CUDA_HOME = /usr/local/cuda

export PATH = " $CUDA_HOME /bin: $PATH "

生效更改

source ~/.bashrc

最后敲nvidia-smi确认驱动安装成功。

3.安装opencv3

conda install -c Package repository for menpo :: Anaconda.org opencv3

4.安装GPU版TensorFlow,keras,因为我安装的而是cuda8.0,因此需要安装对应的tensorflow和keras版本,大家可以根据自己的需求,更换不同的版本。

pip install tensorflow-gpu==1.4

pip install keras==2.1

5.安装unzip

sudo apt-get install unzip

6.pip install imutils

7,查看已经安装的软件包

Conda list

第五步,

上传代码,下载数据集,开始模型训练。这一步,我向大家演示一遍利用我们搭建的谷歌云平台训练kaggle猫狗图像分类模型。

1.我们不需要把数据集下载到本地再重新上传到谷歌云,直接利用下列指令完成数据集直接下载到服务器,简单快捷。

pip install kaggle-cli

kg download -u kaggle账户 -p 密码 -c dogs-vs-cats -f train.zip

通过上面两个指令,数据集就已经下载到服务器当前目录下了,ls查看一下吧~PS:下载数据集之前可能需要我们先登录kaggle,进入dogs-vs-cats竞赛,在Rules一栏中点击接受相关规则。

2.因为我是通过浏览器直接ssh到服务器的,因此在右上角就已经提供了上传和下载的功能,利用上传文件功能,将我们的代码上传到服务器吧。PS:大家也可以选择其他的方式上传代码,不会就google一下吧~

3.开始训练,保存模型和结果。我利用了Alexnet跑了一遍,这里我向大家展示一下我的训练结果,Epoch24能达到验证集89%的准确率,训练更多的Epochs还能提高1%-4%左右的准确率。

4.因为模型训练时间较长,ssh连接服务器的时候会因为长时间没有操作而断开,一旦连接断开,运行的训练程序也将被终止。。。

解决此问题有两种方法。

方案一:在客户端设置

方法很简单,只需在客户端电脑上编辑(需要root权限) /etc/ssh/ssh_config ,并添加如下一行:

ServerAliveInterval 60

此后该系统里的用户连接SSH时,每60秒会发一个KeepAlive请求,避免被踢。

方案二:在服务器端设置

如果有相应的权限,也可以在服务器端设置,即编辑 /etc/ssh/sshd_config ,并添加:

ClientAliveInterval 60

需要注意的是在服务器端设置后需要重启该服务器以使连接生效:sudo reboot

重启后每一个连接到此服务器上的客户端都会受其影响。另外应注意启用该功能后,安全性会有一定下降(比如忘记登出时……)

第六步,

最后我们需要做的就是在训练完成之后,保存我们搭建深度学习的平台,下次需要直接就可以启用而不用再重新配置一遍。

进入GCP的磁盘一栏中,将之前创建的服务器磁盘(保存着我们的数据和代码)创建快照,完成之后,在快照一栏中查看是否已经生成快照。

在下次需要训练的时候,重新创建实例,并在启动磁盘中选择之前保存的快照,完成创建。进入服务器之后,你会发现之前所有的数据都还保存着,然后开始你的下一次训练吧~~

结语:以上就是我跟大家分享的“从头开始搭建谷歌云深度学习平台”的所有工作啦,如果大家觉得有帮助的话,可以扫一扫下面的二维码,酌情打赏,请我喝杯☕️~~

业务搭载离不了云服务器,选择合适的平台最重要!

从目前国内云计算市场的格局来看,国内云计算前三强分别是阿里云、腾讯云和华为云,阿里云、腾讯云作为背靠互联网平台的企业,更偏向于B端用户;华为与作为传统的通信巨头,更偏向于G端。

本人从事云计算相关工作至今已有多年,国内主流的云平台都接触过,包括他们的销售及技术团队,对各家的产品也小有了解,并且指导过数百家企业迁移上云,对云平台选择也有一定的发言权!

网上有很多评测,评测数据也五花八门,说谁好的都有,这个两篇博文分析汇总的非常详细,分享给大家,文档地址:

博文1:云服务器哪家好!阿里云、腾讯云、华为云的服务器配置及价格对比?​

博文2:阿里云服务器突发型t6、n4、s6、c5、c6怎么选?和腾讯云服务器标准型s3、sn3ne、s4、s5、sa2相比哪家好?全面解析

如果是高并发,高IO业务场景,需要确定服务器规格,可让业务应用性能发挥到最佳,参考官方文档:

阿里云服务器规格:规格实例族 - 云服务器 ECS

腾讯云服务器规格:规格实例族 - 云服务器CVM

从0开始建立谷歌云深度学习平台相关推荐

  1. 从头开始搭建谷歌云深度学习平台

    对于研究深度学习的朋友来说,GPU服务器是必不可少的,但是对于很多朋友来说可能没有现成的昂贵GPU服务器供使用,因此利用云服务器来训练模型成为另一个选型.谷歌云较其他云服务器(AWS,阿里云等等)的优 ...

  2. 打造企业级云深度学习平台——小米云深度学习平台的架构设计与实现

    作者:陈迪豪,小米深度学习工程师,负责小米云深度学习平台的架构和实现,目前专注于TensorFlow和Kubernetes社区. 责编:何永灿,欢迎人工智能领域技术投稿.约稿.给文章纠错,请发送邮件至 ...

  3. 小米云深度学习平台的架构设计与实现

    深度学习服务介绍 机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累.神经网络算法的成熟以及高性能通用GPU的推广,深度学习逐渐成为计算机专家以及大数据科学家的研究重点.近年来,无论是 ...

  4. 美团云深度学习平台-快速开始

    关注微信公众号:paper大讲堂(paperclasssroom)获取更多教程和资源. 概述 本模块将会以经典的例子:MNIST手写数字识别 来带你快速入门DLS服务,并了解DLS的基本功能,包括: ...

  5. 从0开始搭建Ubuntu20.04深度学习平台(CUDA, cuDNN, 显卡驱动)

    前言 之前搭建的深度学习平台,只有100G,下载几个数据集和库就满了,拆东墙补西墙并不是一个权宜之计,所以只能换一个更大(256G)的固态硬盘.下面将会详细的阐述一个完善的深度学习平台是如何炼成的. ...

  6. 阿里云深度学习平台试玩

    1,第一个图片分类cifar-10代码中可以看出,(在本地跑)参数是这样传进服务器的: python cifar_pai.py --buckets /Users/kylefan/program/cif ...

  7. 腾讯云机器学习平台技术负责人:揭秘深度学习平台DI-X背后的秘密

    本文转自:https://news.cnblogs.com/n/566061/ 腾讯正式发布了旗下深度学习平台 DI-X(Data Intelligence X),这是继今年 1 月推出 FPGA 云 ...

  8. 云计算深度学习平台架构与实践的必经之路

    定义云深度学习平台什么是云深度学习?随着机器学习的发展,单机运行的机器学习任务存在缺少资源隔离.无法动态伸缩等问题,因此要用到基于云计算的基础架构服务.云机器学习平台并不是一个全新的概念,Google ...

  9. 在谷歌云服务器上搭建深度学习平台

    2018年9月8日笔记 登录谷歌云控制台需要科学上网,连接云主机不需要科学上网. 阅读此文并进行操作的前提是已经成功申请谷歌云的使用资格,并获得300美元使用金额. 如何申请谷歌云的使用,请阅读另外一 ...

最新文章

  1. 学php还是日语,如何使用PHP检查该词是日语还是英文
  2. 开始做事了...............
  3. Maven让资源文件处理插件能够解析资源文件中的Maven属性
  4. 机器人学习--粒子滤波定位-MATLAB仿真1
  5. nvidia-smi:Failed to initialize NVML: Driver/library version mismatch
  6. android sdio 时钟 ios-clock,iOS 炫酷时钟
  7. 为什么选择ASP.NET Core
  8. MapStruct 常用操作
  9. 从零开始学前端:定位 --- 今天你学习了吗?(CSS:Day17)
  10. 百度地图LBS云存储自定义poi热点
  11. 对话周鸿祎:从程序员创业谈起
  12. ADS学习:谐波分析和参数扫描
  13. 精心整理10个高逼格的优质素材(视频、图片)网站
  14. java 麻将小程序_麻将小程序麻将这么玩
  15. 英特尔第二代神经计算棒(Intel Neural Compute Stick 2)相关测试
  16. 数据库工程师的几个发展方向
  17. scala either_使用Either和Option处理功能错误
  18. 雷达原理---时频分析--6.利用小波分析进行奇异点定位和消除
  19. 无配置WCF客户端的一个简单到令人发指的实现方法
  20. PC机插入麦克风后没有说话没有声音

热门文章

  1. Created with Cocos丨抖音小游戏杀疯了!这几个脑洞清奇的作品越玩越上瘾
  2. ajax请求url导出excel,ajax导出excel
  3. 苹果IOS,与windows Phone7,系统,内存,CPU处理,及后台程序运行,详解微软墓碑机制的系统...
  4. 一文熟知docker安装RabbitMQ及安装延迟插件
  5. 新浪微博加粉丝js实现
  6. U盘容量变小了怎么恢复教程
  7. 吐槽:Python正在从简明转向臃肿,从实用转向媚俗
  8. 【求职】2020福建省教师招聘考试小学信息技术
  9. 详解模板引擎工作机制
  10. 手机端学习助手的说明书需求以及团队PM选择