2018-04-25 00:00:00 eo63y6pKI42Ilxr 阅读数 1105
  • 深度学习框架Tensorflow案例实战视频课程

    深度学习框架Tensorflow案例实战视频培训课程概况: Tensorflow是谷歌开源的深度学习(包括机器学习)框架,伴随着人工智能业的兴盛其大名早已响彻云霄。本课程从Tensorflow安装开始讲起,从基本计算结构到深度学习各大神经网络,全程案例代码实战,一步步带大家入门如何使用深度学习框架Tensorflow,玩转Tensorflow模型训练、等所有知识点。

    30235 人正在学习 去看看 唐宇迪

云栖君导读:本文根据实测数据,初步探讨了在弹性GPU云服务器上深度学习的性能模型,可帮助科学选择GPU实例的规格。


一、背景


得益于GPU强大的计算能力,深度学习近年来在图像处理、语音识别、自然语言处理等领域取得了重大突GPU服务器几乎成了深度学习加速的标配。


阿里云GPU云服务器在公有云上提供的弹性GPU服务,可以帮助用户快速用上GPU加速服务,并大大简化部署和运维的复杂度。如何提供一个合适的实例规格,从而以最高的性价比提供给深度学习客户,是我们需要考虑的一个问题,本文试图从CPU、内存、磁盘这三个角度对单机GPU云服务器的深度学习训练和预测的性能模型做了初步的分析,希望能对实例规格的选择提供一个科学的设计模型。


下面是我们使用主流的几个开源深度学习框架在NVIDIA GPU上做的一些深度学习的测试。涉及NVCaffe、MXNet主流深度学习框架,测试了多个经典CNN网络在图像分类领域的训练和推理以及RNN网络在自然语言处理领域的训练。


二、训练测试


我们使用NVCaffe、MXNet主流深度学习框架测试了图像分类领域和自然语言处理领域的训练模型。


2.1 图像分类


我们使用NVCaffe、MXNet测试了图像分类领域的CNN网络的单GPU模型训练。

NVCaffe和MXNet测试使用ImageNet ILSVRC2012数据集,训练图片1281167张,包含1000个分类,每个分类包含1000张左右的图片。

2.1.1 CPU+Memory


2.1.1.1 NVCaffe


NVCaffe是NVIDIA基于BVLC-Caffe针对NVIDIA GPU尤其是多GPU加速的开源深度学习框架。LMDB格式的ImageNet训练集大小为240GB ,验证集大小为9.4GB。


我们使用NVcaffe对AlexNet、GoogLeNet、ResNet50、Vgg16四种经典卷积神经网络做了图像分类任务的模型训练测试。分别对比了不同vCPU和Memory配置下的训练性能。性能数据单位是Images/Second(每秒处理的图像张数)。图中标注为10000指的是迭代次数10000次,其它都是测试迭代次数为1000次。


640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png


2.1.1.2 MXNet


MXNet的数据集使用RecordIO格式,ImageNet训练集 93GB ,验证集 3.7GB。


我们使用网络Inception-v3(GoogLeNet的升级版)做了图像分类的训练测试。分别对比了不同vCPU和Memory配置下的训练性能。数据单位是Samples/Second(每秒处理的图像张数)。


640?wx_fmt=png


2.1.2 磁盘IO

我们在阿里云GN5(P100)实例上使用NVCaffe测试了GoogLeNet网络模型在NVMe SSD本地盘、SSD云盘和高效云盘上的训练性能,测试结果如下(性能数据单位是Images/Second):


640?wx_fmt=png


2.2 自然语言处理


我们使用MXNet测试了RNN网络的LSTM模型的训练,使用PennTreeBank自然语言数据集。PennTreeBank数据集的文本语料库包含近100万个单词,单词表被限定在10000个单词。分别对比了不同vCPU和Memory配置下的训练性能:


640?wx_fmt=png


三、推理测试


3.1 图像分类


我们使用NVCaffe测试了图像分类领域的CNN网络的模型推理。


测试使用ImageNet ILSVRC2012数据集,验证测试图片 50000张。


3.1.1 CPU+Memory


我们使用NVcaffe对AlexNet、GoogLeNet、ResNet50、VGG16四种经典卷积神经网络做了图像分类的推理测试。分别对比了不同vCPU和Memory配置下的训练性能。数据单位是Images/Second(每秒处理的图像张数)。


640?wx_fmt=png


3.1.2 磁盘IO


我们使用NVCaffe测试了GoogLeNet网络在NVMe SSD本地盘、SSD云盘和高效云盘上的图像分类推理性能,测试结果如下(数据单位是Images/Second):


640?wx_fmt=png


四、数据预处理测试


在训练模型之前,往往要对训练数据集做数据预处理,统一数据格式,并做一定的归一化处理。


我们使用NVCaffe对ImageNet ILSVRC2012数据集做了数据预处理的测试,分别对比了NVMe SSD本地盘、SSD云盘和高效云盘的数据预处理时间,数据单位是秒,数据如下:


640?wx_fmt=png


五、数据分析


5.1 训练


5.1.1 图像分类
  

从NVCaffe和MXNet的测试结果来看,图像分类场景单纯的训练阶段对CPU要求不高,单GPU 只需要4vCPU就可以。而内存需求则取决于深度学习框架、神经网络类型和训练数据集的大小:测试中发现NVCaffe随着迭代次数的增多,内存是不断增大的,但是内存需求增大到一定程度,对性能就不会有什么提升了,其中NVCaffe AlexNet网络的训练,相比其它网络对于内存的消耗要大得多。相比之下MXNet的内存占用则要小的多(这也是MXNet的一大优势),93G预处理过的训练数据集训练过程中内存占用不到5G。
对于磁盘IO性能,测试显示训练阶段NVMe SSD本地盘、SSD云盘性能基本接近,高效云盘上的性能略差1%。因此训练阶段对IO性能的要求不高。


5.1.2 自然语言处理
  

从MXNet的测试结果来看,对于PennTreeBank这样规模的数据集,2vCPU 1GB Mem就能满足训练需求。由于自然语言处理的原始数据不像图像分类一样是大量高清图片,自然语言处理的原始数据以文本文件为主,因此自然语言处理对内存和显存的要求都不高,从我们的测试来看,4vCPU 30GB 1GPU规格基本满足训练阶段需求。


5.2 推理


5.2.1 图像分类
  

从NVCaffe的图像分类推理测试来看,除AlexNet 2vCPU刚刚够用外,其它网络2vCPU对性能没有影响,而9.4GB的验证数据集推理过程中内存占用大概是7GB左右,因此对大部分模型来看,2vCPU 30GB 1GPU规格基本满足图像分类推理的性能需求。
  

对于磁盘IO性能,推理性能NVMe SSD本地盘、SSD云盘很接近,但高效云盘差15%。因此推理阶段至少应该使用SSD云盘保证性能。

5.2.2 自然语言处理
  

对于自然语言处理,参考训练性能需求,我们应该可以推测2vCPU 30GB 1GPU规格应该也能满足需求。


5.3 数据预处理
  

从NVCaffe对ImageNet ILSVRC2012数据集做数据预处理的测试来看,数据预处理阶段是IO密集型,NVMe SSD本地盘比SSD云盘快25%,而SSD云盘比高效云盘快10%。


六、总结
  

深度学习框架众多,神经网络类型也是种类繁多,我们选取了主流的框架和神经网络类型,尝试对单机GPU云服务器的深度学习性能模型做了初步的分析,结论是:


  1. 深度学习训练阶段是GPU运算密集型,对于CPU占用不大,而内存的需求取决于深度学习框架、神经网络类型和训练数据集的大小;对磁盘IO性能不敏感,云盘基本能够满足需求。

  2. 深度学习推理阶段对于CPU的占用更小,但是对于磁盘IO性能相对较敏感,因为推理阶段对于延迟有一定的要求,更高的磁盘IO性能对于降低数据读取的延时进而降低整体延迟有很大的帮助。

  3. 深度学习数据预处理阶段是IO密集型阶段,更高的磁盘IO性能能够大大缩短数据预处理的时间。


end


阿里巴巴千亿交易背后的0故障发布

阿里巴巴6大行业报告免费分享啦!

七本书籍带你打下机器学习和数据科学的数学基础

Logtail 从入门到精通:开启日志采集之旅

更多精彩

640?wx_fmt=jpeg

2019-08-31 11:20:06 imwaters 阅读数 2923
  • 深度学习框架Tensorflow案例实战视频课程

    深度学习框架Tensorflow案例实战视频培训课程概况: Tensorflow是谷歌开源的深度学习(包括机器学习)框架,伴随着人工智能业的兴盛其大名早已响彻云霄。本课程从Tensorflow安装开始讲起,从基本计算结构到深度学习各大神经网络,全程案例代码实战,一步步带大家入门如何使用深度学习框架Tensorflow,玩转Tensorflow模型训练、等所有知识点。

    30235 人正在学习 去看看 唐宇迪

博客采用的云地址 https://www.jikecloud.net/

您只需要专注于深度学习本身,无需安装任何深度学习环境,零设置开启您的深度学习之旅。

极客云,为深度学习而生,您只需简单几步操作即可测试和训练您的模型。

1.上传代码和训练集数据(不收费)

上传的数据将会被挂载到 连接后服务器的 /data 目录下

2.选择适合配置,创建云服务器。

我第一次配置时候选择最便宜的,来熟悉环境,下载所需软件包。

3. 配置好云主机后,打开Jupyter Notebook,并在内打开命令端

 

类似Linux命令的使用方法

  

4.将上传数据解压并运行

https://www.jikecloud.net/docs/up-down-data.html

不要在/data追直接解压,否则很慢 

unzip /data/keras-yolo-master.zip -d /input/zeng
zip -r /input/zeng/logs.zip   &&   mv /input/zeng/logs.zip /data/

 

No module named 'PIL'  'matplotlib'

是因为需要 pillow 和 matplotlib

pip install Pillow
pip install matplotlib

安装完成之后,重新运行程序,就没问题了 

输入样本批次数过大,会导致GPU内存耗尽。

 

5.训练的结果,存入 /data 目录,就可以在 我的数据 里下载了

cp -r /input/zeng/keras-yolo-master/logs/ep96-loss14.h5 /data


补充:

常用解压命令 

unzip /data/somefile.zip -d /input/dir_you_want
cp /data/somefile.gz /input/ && gzip -d /input/somefile.gz
cp /data/somefile.7z /input/ && 7z x /input/somefile.7z -o/input/
cp /data/somefile.bz2 /input/ && bzip2 -d /input/somefile.bz2
mkdir -p /input/dir_you_want && rar x /data/somefile.rar /input/dir_you_want/
mkdir -p /input/dir_you_want && tar xvf /data/somefile.tar -C /input/dir_you_want/
mkdir -p /input/dir_you_want && tar zxvf /data/somefile.tar.gz -C /input/dir_you_want/
mkdir -p /input/dir_you_want && tar jxvf /data/somefile.tar.bz2 -C /input/dir_you_want/

如果不想下次使用时再次解压可以通过命令 mv /input/dir_you_want /data/ 将解压好的数据移动到 /data 下
这样 /data 下就会存一份解压后的数据,下次开机后可以直接读取 /data 下解压好的数据,不用再次解压
注意:这样 /data 下存储的数据量会增大,收取的存储费用会有所增加(每GB数据每月存储费用0.5元)

技巧:遇到 tar.7z rar.7z rar.gz rar.bz2 这样扩展名的文件先通过 p7zip gzip bzip2 解压掉最后面的扩展名,
再通过 tar rar 解压出已经解压掉一层的 .tar .rar 文件

压缩命令(将训练结果压缩后存入 /data 目录,就可以在 我的数据 里下载了): 

将 /output/dir_you_want 目录压缩为 /input/file_you_want.zip 文件然后移动到 /data/ 目录下
zip -r /input/file_you_want.zip /output/dir_you_want && mv /input/file_you_want.zip /data/

 


关于云主机的迁移:

您可以对您的机器进行迁移,以便于您在另一台机器上使用和您之前完全相同的环境。迁移会将您原机器的所有内容,
包括您自己装的软件等等数据迁移到另一台机器上。(但不包括 /input 文件夹下的内容)
迁移所需的时间和您的实例中的增量数据大小有关,数据量越大,迁移需要时间越长。
您也可以选择与现有机器相同的类型的云主机进行迁移,相当于在同一台机器上克隆一个和之前一样的环境。
在迁移结束之前,请 不要 开启、关闭、释放迁移相关的两台云主机,以免迁移失败。
您可以在 我的云主机 页面查看迁移的进度,如果由于网络或其他原因迁移失败,您可以手动恢复迁移。
恢复迁移是断点续传的,您不会丢失迁移的进度。

 


在Windows环境下如何使用Putty登陆GPU主机

https://www.jikecloud.net/docs/putty-turtorial.html

 

 

 

 

 

2018-10-30 20:16:41 sunqiande88 阅读数 1821
  • 深度学习框架Tensorflow案例实战视频课程

    深度学习框架Tensorflow案例实战视频培训课程概况: Tensorflow是谷歌开源的深度学习(包括机器学习)框架,伴随着人工智能业的兴盛其大名早已响彻云霄。本课程从Tensorflow安装开始讲起,从基本计算结构到深度学习各大神经网络,全程案例代码实战,一步步带大家入门如何使用深度学习框架Tensorflow,玩转Tensorflow模型训练、等所有知识点。

    30235 人正在学习 去看看 唐宇迪

众所周知深度学习需要强大的GPU支撑,但是好的GPU过于昂贵,但是一般学生(比如我)很难有能力购买,于是我无意间发现了一个好用的云服务器—极客云 (同比阿里云、腾讯云等价格适中还可以接受),使用云服务器只需要专注于深度学习本身,无需安装任何深度学习环境,零设置开启您的深度学习之旅。极客云,为深度学习而生,只需简单几步操作即可测试和训练您的模型。
在这里插入图片描述

如何使用:

注册账号后会有一张优惠卷,能免费使用装载GTX 1080Ti的服务器一小时。官网上有个新手入门文档会教你快速开始模型训练。

2017-11-23 19:49:09 Lo_Bamboo 阅读数 34461
  • 深度学习框架Tensorflow案例实战视频课程

    深度学习框架Tensorflow案例实战视频培训课程概况: Tensorflow是谷歌开源的深度学习(包括机器学习)框架,伴随着人工智能业的兴盛其大名早已响彻云霄。本课程从Tensorflow安装开始讲起,从基本计算结构到深度学习各大神经网络,全程案例代码实战,一步步带大家入门如何使用深度学习框架Tensorflow,玩转Tensorflow模型训练、等所有知识点。

    30235 人正在学习 去看看 唐宇迪

神经网络训练需要强大的GPU支持,自己搭建成本太高,并且有时候出差等原因,无法将庞大的机箱搬走。因此,就产生了将深度学习网络训练的任务搬到云端的想法。由于初次使用,遇到不少大坑,花了两天时间才完整的实现。
要实现的功能:
- 安装anaconda管理库
- 远程访问jupyter notebook
- 将本地文件和服务器端文件互传
- 安装tensorflow的GPU版本
- 服务器不用的时候释放,下次直接再用,节省费用

注意:本文主要解决常见的坑。
1、anaconda 安装慢,阿里云的GPU服务器很贵的,时间就是金钱在这里体现的淋漓尽致。
2、jupyter notebook无法远程访问,或者直接报错sock无法连接错误
3、从github上下载文件慢的要命,且有文件大小限制(100M)
4、服务器端查看一切正常,远程就是无法访问问题

针对以上种种问题,我综合了网上各位大神的文章,汇总到一起,实现从零开始的目标。减少环境搭建时间,把时间花在机器学习本身上。

本文服务器端采用的是阿里云ubantu 16.04版本,我的电脑也是。


创建帐号及设置

阿里云服务器的购买过程简化一点:选择地域》选择实例:异构计算,GPU计算》镜像:镜像市场,搜索深度学习ubantu版本(已经安装好了显卡驱动和cuda8.0)》其他的按需配置》设置密码

几点要注意的地方:
1、一般选择按量付费,包月包年太贵。土豪随意啊。我会在后面说怎么很便宜的把自己的数据和配置保存下来。用的时候再复制出来。
2、镜像的选择问题,一定在镜像市场里找到已经安装好驱动和cuda8.0的,不然我相信你会哭的。我觉得阿里云做技术很马虎啊,你不装驱动,让我自己装,有故意收黑钱的嫌疑。
3、安全组配置,我会后面着重说明,现在选择默认就可以了。

采用SSH方式访问远程服务器

在本地电脑打开终端,输入:

ssh root@47.93.*.*#输入自己的公网IP

然后会打印出:

The authenticity of host '47.93.*.* (47.93.*.*)' can't be established.
ECDSA key fingerprint is SHA256:r60avP7Lyz01MRTFN9mbekDAcwZWv8tFUmMlo6dr/m0.
Are you sure you want to continue connecting (yes/no)? 

yes
首次登录会提醒你,系统自动创建密匙

Warning: Permanently added '47.93.*.*' (ECDSA) to the list of known hosts.

输入你购买服务器时,输入的密码。如果购买时没有输入密码,此时会让你设置。PS:给没用过Linux系统的提醒一下,输入密码不会显示,完成后回车即可。

root@47.93.*.*'s password: 

这是你就可以看到成功登录的页面

Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
Welcome to Alibaba Cloud Elastic Compute Service !

更改主机名称及host

刚登录进去,主机名是一串非常长的随机编码,很难记住,我建议更改掉。

我采用的vim编辑器,系统默认安装的。如果第一次用,肯定很难熟悉,建议先百度一下vim的基本用法。PS:有点罗嗦,但是第一次,肯定很茫然。习惯了之后效率确实很高。

删除,起个自己熟悉的名字。

vim /etc/hostname#ubantu的在此目录下,其他系统按需更改

更改完成后,重启才会起作用。暂时不要重启。继续

vim /etc/hosts

把刚才自己修改的名字加入

127.0.0.1       localhost
127.0.0.1       bamboo_aliyun #新增

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

如果不设置此项,每次用sudo会一直提醒。

sudo: unable to resolve host iZ2ze3v1xxtg5z3w2nb8oaZ

查看一下是否已经安装好了驱动和相关的包。

root@GPU_aliyun:~# ls
deep_learning  nvidia  NVIDIA_CUDA-8.0_Samples
exit#推出SSH登录

现在阿里云控制台重启一下服务器。

创建新用户

重新用root登录服务器,与上同,不再贴代码。进入后发现主机的名称已经变成你设置的了。

notes:此地方有大坑,要注意。创建新用户有两个命令。一个是useradd和adduser。我建议用adduser,按照提示一直操作,就会自动完成。如果采用useradd如果不加参数的话,会创建一个三无产品。
1、无Home Directory
2、无密码
3、无系统Shell

1、adduser用户创建过程(两者任选其一)

sudo adduser bamboo

自动创建过程:

root@GPU_aliyun:~# sudo adduser bamboo
Adding user `bamboo' ...
Adding new group `bamboo' (1000) ...
Adding new user `bamboo' (1000) with group `bamboo' ...
Creating home directory `/home/bamboo' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for bamboo
Enter the new value, or press ENTER for the default
    Full Name []: bamboo
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] y

使用新帐号登录系统:

bamboo@bamboo-WorkBook:~$ ssh bamboo@39.106.143.143

在root帐号下,设置sudo权限

sudo vim /etc/sudoers
# User privilege specification
root    ALL=(ALL:ALL) ALL
bamboo  ALL=(ALL:ALL) ALL

否则,会使用后面chmod命令会报以下错误:

bamboo is not in the sudoers file.  This incident will be reported.

设置文件夹权限(一定要设置,如果不设置后面安装程序会有问题)

bamboo@GPU_aliyun:~$ sudo chmod -R 777 /home/bamboo/

至此已经新帐号添加完成
2、useradd用户创建过程

创建用户,并把用加入root 和bamboo组

sudo useradd -g root bamboo

由于是三无产品,你需设置一下登录密码

sudo passwd bamboo

由于无shell,用新用户进入后,不显示路径,TAB键也不起作用,因此,我们需要添加shell

usermod -s /bin/bash bamboo

设置sudo权限

vim /etc/sudoers
# User privilege specification
root    ALL=(ALL:ALL) ALL
bamboo  ALL=(ALL:ALL) ALL

除了上述命令行的解决方式外,你也可以手动编辑passwd文件添加shell

vim /etc/passwd

重新用新用户登录系统

ssh bamboo@47.93.*.*#输入自己的公网IP

将用户目录的权限修改为,所有人可以读写执行。

sudo chmod -R 777 /home/bamboo/

如果不修改权限的话,在安装Anaconda时,会报出一下错误:
PermissionError(13, ‘Permission denied’)

PS:权限管理我还没完全搞清楚,我认为肯定有更加简洁的方法,但此方法确实能工作。如果对用户权限管理比较清楚的大神请留言更有效的方法。还有我之前在阿里云上配置其他服务器程序的时候发现root帐号内容,远程是无法访问的(估计是为了安全性考虑)。所以就直接新建帐号,大家可以试一下,给我留言,我更新一下博客


配置阿里云安全组

因为阿里云为了安全起见,默认只开放了22、80等少数端口。而jupyter notebook默认采用8888端口,因此在安全组配置中,需要将此端口开放。
如果一切都正常,就是无法远程访问,有90%的可能性就是安全组规则配置的问题。
设置过程:云服务器管理控制台》云服务器ECS》网络和安全》安全组》配置规则》添加安全组规则
添加安全组规则


Anaconda安装(清华源)

由于Anaconda默认的源在国外,下载速度极其缓慢。我采用清华的源。
直接用wget 下载

sudo wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.0.1-Linux-x86_64.sh

执行安装过程:

sudo bash Anaconda3-5.0.1-Linux-x86_64.sh

提示你,是否阅读协议,回车接受

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue

是否接受协议,yes

Do you accept the license terms? [yes|no]

安装位置确认,回车

Anaconda3 will now be installed into this location:
/home/bamboo/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

确定安装位置之后,需要等待安装一些默认的包,会让你选择一次bashrc.这时候一定要写yes

Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/bamboo/.bashrc ? [yes|no]
[no] >>> yes

提示你如果要让bashrc起作用,要打开一个新的终端。但测试不起作用。

For this change to become active, you have to open a new terminal.

于是,我就直接配置环境变量

sudo vim /etc/environment

把自己的安装目录添加到后面

:/home/bamboo/anaconda3/bin

立即激活环境变量

source /etc/environment

测试是否安装成功

conda --version

如果安装成功,会显示出当前conda的版本

conda 4.3.30

更新conda install的源

# 添加Anaconda的TUNA镜像
conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

更新一下conda

conda update conda

创建jupyter notebook运行环境,可以方便管理各类库

conda create -n jupyter_notebook python=3

激活环境

source activate jupyter_notebook

安装深度学习所需要的所有库

conda install numpy#测试是否能安装,后面也可按需安装

如果要退出环境的话,执行:

source deactivate#暂时不执行

安装jupyter notebook

在conda环境安装jupyter notebook,会自动安装相关依赖的包,并且独立。因此,我采用jupyter notebook 安装。每次在conda环境中使用,防止发生一些莫名奇妙的错误。

由于在本地使用和远程使用有着本质上的区别。因此,配置上也有很大的不同。由于之前我一直在本地使用,觉得应该不用配置什么东西,结果白白浪费了大量的时间和钱。本文会先主要说明远程访问的配置过程。

服务器端安装及测试jupyter notebook 是否正常

安装jupyter notebook

conda install jupyter notebook

测试

jupyter notebook --ip=127.0.0.1

终端输出正常即可
jupyter notebook

配置jupyter notebook远程访问

默认jupyter notebook 是不需要配置文件的。因此,需要用以下命令生成该文件。
主要配置一下内容:
- 设置远程访问密码
- 设置可访问ip,全局访问
- 禁用服务器端启动浏览器

jupyter notebook --generate-config

生成文件后,文件在该目录下

Writing default config to: /home/bamboo/.jupyter/jupyter_notebook_config.py

打开jupyter_notebook_config.py文件

vim /home/bamboo/.jupyter/jupyter_notebook_config.py

设置可以访问服务器的ip

c.NotebookApp.ip = '*'

notes:很多教程把该ip设置为127.0.0.1,这样你只能在本地访问,远程是无法访问的。这是大坑中很大的一个。

打开ipython

ipython

调用passwd()函数生成密匙,把密匙复制下来,后面会有用

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'

加入上面生成的密匙

c.NotebookApp.ip = '*'
c.NotebookApp.password = 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'

设置不在服务器端自动打开浏览器

c.NotebookApp.ip = '*'
c.NotebookApp.password = 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'
c.NotebookApp.open_browser = False

到目前位置所有远程的配置的所有工作已经全部完成。赶快启动一下jupyter notebook是不是可以访问。

jupyter notebook

终端开始输出:
这里写图片描述
远程访问测试

47.93.*.*:8888

登录界面
这里写图片描述
进入后,跟本地操作一样的
这里写图片描述
测试正常后,将CTRL+C停止


文件互传

很多时候,我们是在本地先写好jupyter notebook文件,只需要在云服务器上训练一下。因此,文件的传递是非常重要的功能。scp是采用ssh传递文件的一种方式,比较简单易行。
上传过程:

scp -r /home/bamboo/文件路径/文件名/ bamboo@47.93.*.*:/home/bamboo/
#scp -r表示传递文件内所有文件
#scp 直接传递单个文件

我提前把下载过程贴出来,正常是训练完成后,下载文件。
下载过程:

scp -r bamboo@47.93.*.*:/home/bamboo/文件路径/ /home/bamboo/文件路径/文件名/

非常好理解,都是从前向后传


训练神经网络

安装自己需要的tensorflow-gpu版本

conda install tensorflow-gpu=1.1

重新启动jupyter notebook

jupyter notebook

可以正常打开,并且找到自己的文件了。
这里写图片描述
查看一下gpu是否正常
这里写图片描述
运行程序,速度确实快了很多啊,大概算了一下,是我的笔记本cpu版的48倍,确实挺靠谱。
这里写图片描述
在后台,看了一下GPU版本
这里写图片描述

训练已经完成,tensorflow保存的参数复制下来:

scp -r bamboo@47.93.*.*:/home/bamboo/文件路径/ /home/bamboo/文件路径/文件名/

制作自定义镜像

自定义镜像费用比较低,大概是0.2元/G/月。相对于租赁服务器的费用很低了。

制作过程:选择实例》管理》实例详情》更多》创建自定义镜像
这里写图片描述

最重要的说明:自定义镜像创建完成后,一定要将实例释放掉。否则,阿里云会一直计费的。会一直计费的。会一直计费的。重要的事说三遍


利用自定义镜像创建实例

有了自定义镜像,你再次使用阿里云的服务器就变得简单了很多。不需要之前冗长的配置过程了。在购买的时候,选择同之前相同的配置。镜像选择自定义镜像。

这里写图片描述

这里写图片描述

登录进入了,发现之前的配置依然存在。

root@iZ2ze1289s0kuqzkxpxpazZ:/home/bamboo# ls
anaconda3  Anaconda3-5.0.1-Linux-x86_64.sh  tv-script-generation

用之前设置的普通用户登录:

bamboo@iZ2ze1289s0kuqzkxpxpazZ:~$ ls
anaconda3  Anaconda3-5.0.1-Linux-x86_64.sh  tv-script-generation
bamboo@iZ2ze1289s0kuqzkxpxpazZ:~$ conda --version#测试conda

输出正常:

conda 4.3.30

用scp上传下载文件,开始你的新的任务就可以了。

jupyter notebook#启动正常,按上述方式继续访问。

本文采用阿里云GPU计算服务器 + conda +tensorflow-gpu+ jupyter notebook 架构,实现远程训练神经网络的功能。很多研究深度学习和机器学习的博友,并不是很专业的运维人员,因此,在环境配置上花费大量时间是无意义的。因此,就诞生这篇博文,我也是个运维小白,也很多不完善的地方。大家多留言,我尽量完善该博文,作为一个参考资料。

bamboo书于西安

更新记录:
2017年11月23日 完成初稿,自定义镜像创建实例未完成
2017年11月26日 自定义镜像创建实例完成
git是个很有用的工具,计划把git在服务器端的配置也加上

参考:
conda官网教程

2017-12-25 21:35:46 fitzgerald0 阅读数 4278
  • 深度学习框架Tensorflow案例实战视频课程

    深度学习框架Tensorflow案例实战视频培训课程概况: Tensorflow是谷歌开源的深度学习(包括机器学习)框架,伴随着人工智能业的兴盛其大名早已响彻云霄。本课程从Tensorflow安装开始讲起,从基本计算结构到深度学习各大神经网络,全程案例代码实战,一步步带大家入门如何使用深度学习框架Tensorflow,玩转Tensorflow模型训练、等所有知识点。

    30235 人正在学习 去看看 唐宇迪

百度云上部署Tensorflow进行模型训练

    上半年就了解过百度云但是还是tf1.0版本的,而谷歌3月份的升级到1.2改动挺大的,百度云上更新滞后,所以尽管有tf平台,版本落后每小时付费还是有点小贵,于是没有考虑了,近日有对比了几家平台,百度云深度学习tensorflow1.2了,更符合个人的习惯,同时可以选择用jupyter登录写代码。

    首先是进入百度云官网 实名认证,目前所有的云服务目前都需要实名认证

1 . 点击 百度深度学习 开启 




2. 下一步创建集群

看清管理员密码设置要求,地区就近在三个可以选择的范围内选一个,设置一个简单的集群名称,这个密码在用jupyter登录的时候需要输入。




3. 设置成功,充值,余额必须大于20元rmb  ---开通成功




4 .查看基本信息,选择登录方式,我选择的是jupyter 





5. 此时点击jupyter进入提示非私人连接,没关系,点显示详细信息,信任该链接


 


6. 成功进入jupyter登录页面,输入上面设置的管理员密码



7 .查看此时的路径和已有的模块,tensorflow1.2 gpu版本





8. 上传数据,使用百度云提供的bos,点击如下(需要开通这项服务,少额付费)



9 .创建Bucket,上传文件,速度还是非常快的





10. 点击获取地址。出现如下链接




11.使用 wget 上传, -O 是 -O (大欧)  把上传的这个文件名改成 name.文件后缀 如果不改会发现名字非常的长,后面跟一大串地址代码,而且很可能无法使用。


12. 这时候其实一直是计费的,点击释放集成,停止计费,本次运算结束,下一次需要从第一步开始重新设置集成。


没有更多推荐了,返回首页