对于研究深度学习的朋友来说,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 https://conda.anaconda.org/menpo 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的磁盘一栏中,将之前创建的服务器磁盘(保存着我们的数据和代码)创建快照,完成之后,在快照一栏中查看是否已经生成快照。 

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

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

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

  1. 从0开始建立谷歌云深度学习平台

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

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

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

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

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

  4. 硅步携手Allegro.ai,搭建强大的深度学习平台

    10月9日,硅步机器人(gaitech.com)下属的上海硅步(gaitech.net)与Allegro.AI签署全面战略合作协议,硅步机器人作为Allegro.AI在中国的合作伙伴,共同搭建深度学习 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. android CMake开发
  2. centos 7 单用户模式无法重置root密码 解决方法
  3. 转:HTTP 协议 GET 、POST之不同
  4. python 批量读取xlsx并合并_如何用Python快速导入多个excel文件并合并文件数据
  5. 2022年中国即时配送行业趋势研究报告
  6. 网页查看js源码汉字显示乱码问题解决
  7. cocos2d-html5 碰撞检测的几种方法
  8. 如何使用python游戏开发模块—pygame?
  9. Python2.6+PyQt4.8+eric4+汉化+开发教程
  10. 【气动学】基于龙格库塔算法实现外弹道仿真含Matlab源码
  11. 清华EMBA课程系列思考之九 -- 中国经济前沿问题解读
  12. php页面添加背景图片,css怎么增加背景图片
  13. 个性化精简掉了Win10便签顶部如何恢复
  14. 资深摄影师眼中 青岛值得一游的景点有哪些之4
  15. c++ 两个Map容器的差异性比较,返回差异内容
  16. python网络安全论文题目_全新计算机专业毕业设计选题(毕业论文题目)
  17. 手机欢乐斗地主怎么创建房间
  18. {2018.4.9}盘点一下荀(gou)彧(huo)同学犯的低级错误
  19. 数字信号处理——FFT运算模块设计(2)
  20. tp90和tp99是指什么性能指标

热门文章

  1. Mybatis-Plus中getOne方法获取最新一条数据
  2. Linux 常用命令及详细使用方法
  3. 【Bleak】九、实战_获取外围设备数据
  4. java visible_Java-setVisible(true)对GUI没有影响
  5. IP计算方法!【杨栋胜】
  6. postman连接数据库
  7. qq飞车手游服务器维护,【帮助】登录/版本更新异常问题指引
  8. [转载]二十四节气养生大全
  9. 跟老齐学python轻松入门_跟老齐学Python 轻松入门 中文pdf_Python教程
  10. QQ炫舞官网选项卡效果