前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云服务器深度学习环境搭建

云服务器深度学习环境搭建

原创
作者头像
周朋伟
修改2020-10-24 20:55:01
19.6K0
修改2020-10-24 20:55:01
举报
文章被收录于专栏:腾讯云大数据与AI专家服务

系统初始化环境

Linux:Ubuntu 18.04.1

Mem:20G

CPU:Intel Xeon Sliver 4110(2.1 GHz) 4核

GPU:Tesla P4 1颗

深度学习环境配置

安装Linux下的Cuda驱动

1. 登录 NVIDIA 驱动下载 或打开链接 http://www.nvidia.com/Download/Find.aspx 。

2. 选择对应的支持 DEB 包的操作系统(Ubuntu 18.04),得到下载链接:

代码语言:shell
复制
wget http://us.download.nvidia.com/tesla/418.67/nvidia-diag-driver-local-repo-ubuntu1804-418.67_1.0-1_amd64.deb

3. 安装软件包

代码语言:shell
复制
sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1804-418.67_1.0-1_amd64.deb

4. 添加key

代码语言:shell
复制
sudo apt-get add /var/nvidia-diag-driver-local-repo-<version>/7fa2af80.pub

5. 使用apt-get命令更新软件包

代码语言:shell
复制
sudo apt-get update

6. 运行apt-get命令安装驱动

代码语言:shell
复制
sudo apt-get install cuda-drivers

7. 运行reboot指令重启。

8. 运行nvidia-smi能输出正确信息代表驱动安装成功。

其中2-6步来源于nvidia官网教程

此外,rufile安装、rpm包安装、Windows系统安装等方式也可参见腾讯云文档

安装Anaconda

注意:建议在普通用户状态下安装,而非root用户下安装。

1. 进入anaconda官网选择安装包下载:此处选择Linux系统下的Python3.7 version

代码语言:shell
复制
wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh

2. 执行安装文件

代码语言:shell
复制
bash Anaconda3-2019.07-Linux-x86_64.sh 

3. 重启shell(或者直接输入bash指令),即可使用anaconda3,输入conda指令即可。

此时控制台输入python,已不再是系统自带的2.7版本,而是anaconda中的python版本。

4. 当在root用户下输入conda提示无指令/python版本仍为2.7时,执行以下操作:

代码语言:shell
复制
sudo gedit ~/.bashrc
export PATH="/home/ubuntu/anaconda3/bin:$PATH"

5. 若要删除anaconda,直接将anaconda的安装目录整体删除即可:

代码语言:shell
复制
rm -rf /root/anaconda3

6. 关于安装anaconda后,Linux的终端shell界面前面出现(base)字样。

原因:在打开终端后,自动执行了conda activate base。

解决:输入conda deactivate即可。要想再次激活,输入conda activate base即可。

创建虚拟环境

1.创建python=3.7的名字为keras的虚拟环境

代码语言:shell
复制
conda create --name keras python=3.7

2.激活keras环境

代码语言:shell
复制
conda activate keras

3.如果想检查现有所有的虚拟环境,可利用conda指令

代码语言:shell
复制
conda env list

虚拟环境中安装Tensorflow-gpu

1.利用conda指令安装tensorflow-gpu

代码语言:shell
复制
conda install tensorflow-gpu

2.利用代码测试检查Tensorflow是否安装成功,正确输出即安装成功。

代码语言:python
代码运行次数:0
复制
# pythonA
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

虚拟环境中安装Keras

1.利用pip指令安装keras

代码语言:shell
复制
pip install keras

2.利用代码测试检查keras是否安装成功,无报错即安装成功。

代码语言:python
代码运行次数:0
复制
# python
import keras

虚拟环境中安装jupyter

1.在虚拟环境中输入jupyter指令,提示失败。因为并未安装。

可以使用conda list指令查看已安装的包。

2.利用conda安装jupyter

代码语言:shell
复制
conda install jupyter

3.打开jupyter

代码语言:shell
复制
jupyter notebook

为防止网断导致notebook挂掉,利用screen指令,新开一个screen,以便在后台运行notebook。screen指令的使用,参见附录。

代码语言:shell
复制
# 开启screen
screen
# 激活环境
conda activate keras
# 运行notebook
jupyter notebook
# 在网页访问notebook,需要输入token,查看token的方法是
jupyter notebook list

访问远程环境

在本地远程访问虚拟环境中的notebook

1.在本地利用ssh指令实现本地端口转发:

代码语言:shell
复制
ssh -L8008:localhost:8888 <IP>

利用MobaxTerm建立隧道连接虚拟环境中的notebook

1.点击Tools,点击Network下的MobaSSHTunnel(Port forwarding)

2.点击New SSH tunnel

3.选择Local port forwarding,并输入对应内容,点击Save。

4.输入Name,点击开始箭头即可。

5.此时完成隧道建立,本地浏览器访问127.0.0.1:8008即可访问远程的Jupyter。

配置Windows本地Spyder(3.3.0及以上)连接远程服务器

1.服务器端在虚拟环境中,利用conda/pip指令安装spyer-kernels

代码语言:shell
复制
conda install spyder-kernels

2.服务器端在虚拟环境中,利用命令python -m spyder-kernels.console,开启一个kernel,并生成kernel-<id>.json文件

代码语言:shell
复制
python -m spyder_kernels.console

3.服务器端在虚拟环境中,用命令jupyter --runtime-dir找到kernel文件的路径

代码语言:shell
复制
jupyter --runtime-dir
#输出举例:/home/ubuntu/.local/share/jupyter/runtime/

4.在上述路径中找到kernel-<id>.json文件,并拷贝到本地端。

5.在本地的spyder中,在ipython console右上侧的设置中找到connect to an existing kernel

6.选中刚刚拷贝好的kernel文件,选中this is a remote kernel, 并输入host name与密码。(SSH Keyfile不用管)

7.点击Ok后,报错如下“Could not open ssh tunnul. The error was: Paramiko not available”:

解决办法为:运行Spyder,在SpyderIPython控制台中输入指令:

代码语言:shell
复制
!pip install paramiko

之后,重启spyder,即可。

此时,就可以让spyder连接到服务器了!可以欢快地查看变量了。

配置Windows本地Pycharm连接远程服务器

1.用pycharm打开一个项目,File -> Settings -> 搜索Project Interpreter -> 在Project Interpreter栏目右侧点击设置图标 -> 选择Add...

2.点击SSH Interpreter -> 输入远程主机的IP(***.**.**.***)和登录用户名(ubuntu)

3.点击后,输入远程连接的服务器密码

4.选择远程Interpreter。点击文件夹图标 -> 选择远程虚拟环境中的python解释器。

eg:/home/ubuntu/anaconda3/envs/keras/bin/python

这样虚拟环境就可以使用了。

问题1:Pycharm的Python Console控制台出现中文乱码

【问题描述】

PyCharm 默认打开时,python console中如果用到windows下cmd里的命令时,会输出乱码

【问题原因】

cmd默认的编码是gbk(代码页:936),而python console 里面的编码是utf-8(代码页:65001),由于编码不一致,所以输出时会出现乱码

【解决办法】

1、File-Setting-Search-console-python console

2、添加以下代码!chcp 65001

注:file encoding中的编码设置保持默认即可,不要被网上其他博客所误导而乱改,正常如下:

3、重启python console即可,效果如下:

附录

screen指令使用

常用参数

screen -S yourname -> 新建一个叫yourname的session

screen -ls -> 列出当前所有的session

screen -r yourname -> 回到yourname这个session

screen -d yourname -> 远程detach某个session

screen -d -r yourname -> 结束当前session并回到yourname这个session

screen -S yourname -X quit ->删除当前screen

快捷键

在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。

C-a ? -> 显示所有键绑定信息

C-a c -> 创建一个新的运行shell的窗口并切换到该窗口

C-a n -> Next,切换到下一个 window

C-a p -> Previous,切换到前一个 window

C-a 0..9 -> 切换到第 0..9 个 window

Ctrl+a [Space] -> 由视窗0循序切换到视窗9

C-a C-a -> 在两个最近使用的 window 间切换

C-a x -> 锁住当前的 window,需用用户密码解锁

C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。

C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。

C-a w -> 显示所有窗口列表

C-a t -> Time,显示当前时间,和系统的 load

C-a k -> kill window,强行关闭当前的 window

C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样

C-b Backward,PageUp

C-f Forward,PageDown

H(大写) High,将光标移至左上角

L Low,将光标移至左下角

0 移到行首

$ 行末

w forward one word,以字为单位往前移

b backward one word,以字为单位往后移

Space 第一次按为标记区起点,第二次按为终点

Esc 结束 copy mode

C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上

重点问题

1.screen的三种状态

Attached:有用户登录状态。

Detached:暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。

输入screen -d <session-id>到此状态。

通过screen -r <session-id>再次进入。

Dead:被kill了该screen。

2.如何正常退出screen?

在screen中输入exit指令即可。

3.当screen状态为Attached时,如何重新登入该screen?

代码语言:shell
复制
screen -ls
screen -D  -r <session-id>
解释:-D -r 先踢掉前一用户,再登陆scr
其中,-D也可用-d替换。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系统初始化环境
  • 深度学习环境配置
    • 安装Linux下的Cuda驱动
      • 安装Anaconda
        • 创建虚拟环境
          • 虚拟环境中安装Tensorflow-gpu
            • 虚拟环境中安装Keras
              • 虚拟环境中安装jupyter
              • 访问远程环境
                • 在本地远程访问虚拟环境中的notebook
                  • 利用MobaxTerm建立隧道连接虚拟环境中的notebook
                    • 配置Windows本地Spyder(3.3.0及以上)连接远程服务器
                      • 配置Windows本地Pycharm连接远程服务器
                        • 问题1:Pycharm的Python Console控制台出现中文乱码
                    • 附录
                      • screen指令使用
                        • 常用参数
                        • 快捷键
                        • 重点问题
                    相关产品与服务
                    云服务器
                    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档