docker在浏览器里为你提供深度学习系统!

0. 说明

转载请注明原始出处!

项目地址:
https://github.com/LeoCHANGcn/Nvidia-docker-Ubuntu-16.04-Unity-Desktop-TensorFlow-with-GPU.

由于一般的服务器都是Linux系统,并且考虑到隔离用户,最好的方法是使用Docker容器,docker类似于虚拟机,但是很轻量,效率很高,可以使用显卡资源!好多实验室或者研究团体使用docker为团队成员提供计算资源。但是这存在一个问题,就是docker本身是没有图形界面的,因此需要查看模型效果的时候不是很方便。

本项目旨在在GPU服务器的服务端配置可视化容器,满足大家的深度学习要求的同时,提供一个类似原生系统的操作体验。本项目可以在浏览器里为你提供一个接近原生的操作系统,在浏览器的系统里面进行深度学习编程!

这里写图片描述

开始之前,你需要对docker有一些了解。然后电脑需要一个满足深度学习要求的强悍显卡,电脑需要安装了dockr以及nvidia-docker。Docker和nvidia-docker请自行搜索官网安装。

如果感觉不错,可以github上给一颗星哦!

1. 概览

  • 友好的人机交互界面
  • 自适应浏览器分辨率
  • opencv3.4 (GPU加速版)
  • tensorflow1.6
  • CUDA9.0
  • cudnn 7
  • 自行更改密码,个人信息更安全
  • 丰富的端口映射
  • 安全的数据管理机制
  • 丰富的容器内应用

2. 接近原生unity桌面的操作体验!

首先:

git clone https://github.com/LeoCHANGcn/Nvidia-docker-Ubuntu-16.04-Unity-Desktop-TensorFlow-with-GPU

cd Nvidia-docker-Ubuntu-16.04-Unity-Desktop-TensorFlow-with-GPU

你可以根据github里的命令进行编译:

sudo nvidia-docker build -t leeochang/deep_learning:v0.1 .

或者直接pull:

sudo docker pull leeochang/deep_learning:v0.1

然后在服务器运行:

sudo nvidia-docker run -itd -p 16068:6080 -p 16062:22 -e PASSWORD=0000 -e SUDO=yes leeochang/deep_learning:v0.1

-e PASSWORD=**** 设置密码(作为noVNC登陆密码和系统密码)
-e SUDO=yes 设置登录后允许root权限
-p 暴露端口 6080是登陆界面提供端口;22是ssh端口

在本地打开浏览器,输入

 http://[your ip address]:16068/vnc.html

然后就可以登陆了!

3. 自适应分辨率

浏览器左侧控制栏进行如下选择可以自适应分辨率(选择远端调整大小):
这里写图片描述

4. 终端

由于gnome terminal在容器里无法运行,所以配置了guake(推荐)和tilda两款终端仿真器。这两款终端仿真器都是雷神下拉式风格。

搜索guake启动guake终端,然后使用“F12”快捷键调出。

这里写图片描述
这里写图片描述

已经配置好了opencv3.2 Tensorflow1.6 等

这里写图片描述

4. 修改密码

使用如下命令修改密码,密码至少是8位数字、子母的组合

passwd

输入此命令后,根据提示修改密码。修改密码主要保证个人容器无法被其他人登录。

注意,这里的修改密码是修改的ubuntu系统的密码,第一步登录novnc的密码还是你一开始设置的密码,不过不要紧,本次更新为容器配置了锁屏功能,输入以下命令锁屏:

gnome-screensaver-command -l

如果感觉这条指令太长,可以使用自定义命令,输入如下命令:

vim .bashrc

在文件尾添加‘:

alias lock="gnome-screensaver-command -l"

保存并退出,然后:

source .bashrc

这样以后你只需要输入’lock’就可以锁屏了!

这里写图片描述

5. 文件传输

对于linux用户,可以暴露22端口,然后使用scp命令;
windows可以使用mobaXterm软件,MobaXterm软件下载.

安装完成后打开,点击“start local terminal”
这里写图片描述

通过监控网站找到容器内对应22端口的主机端口,比如我的是16062,所以输入(下面一条指令每个用户只需要替换端口号即可):

ssh -p 16062 ubuntu@10.193.0.11

输入你修改后的密码:

这里写图片描述

然后左侧就会出现文件夹,你可以拖拽下载或者上传

7. 火狐浏览器崩溃问题修复

容器内火狐浏览器崩溃:

这里写图片描述

  • 做如下修复:地址栏输入about:preferences,将performance里面的选项按照下图取消勾选:

这里写图片描述

  • 然后地址栏输入about:config,作如下修改(双击对应项即可)
  • browser.tabs.remote.autostart = false
  • webgl.disable-wgl = true
  • webgl.disabled = true
  • webgl.enable-webgl2 = false

完成上述指令后,重启火狐浏览器即可。

目前使用中没有观察到过浏览器崩溃的情况。

8. Jupyter notebook启动问题

无论是用anaconda安装虚拟环境还是使用原生python安装jupyter,在启动的时候推荐:

jupyter notebook --ip=0.0.0.0

不推荐ip=127.0.0.1,因为这样无法在本地浏览器访问,只能在容器内的火狐浏览器访问,虽然火狐的崩溃问题在刚刚修复了,但是并不确定这些修复可以完全避免崩溃。

Anaconda注意事项

容器内没有配置Anacondaa,但是可以自行配置。

andocnda创建环境的时候,由于opencv是为python3.5和python2.7编译的,所以opencv只能在这两个python版本或更低的版本下使用(亲测python3.6失败)。具体方法是conda创建虚拟环境之后,把/usr/local/lib/python3.5/dist-packages目录下的cv2.so和cv2.cpython-35m-x86_64-linux-gnu.so复制到你的虚拟环境目录下lib/python3.5/site-packages即可使用。

猜你喜欢

转载自blog.csdn.net/u014303046/article/details/79530242