文章

深度学习服务器搭建环境记录

深度学习服务器搭建环境记录

下载 anaconda

anaconda 的安装比较简单,参考官方文档的安装即可,可以通过 Linux 下 wget 命令下载 anaconda 安装包,官网安装包下载比较慢,推荐使用清华开源软件镜像站下载,注意需要下载的版本要和 python 的版本对应,我想使用 python3.6,故而下载的是 anaconda5.2.0,当然,也可以下载最新的 anaconda 版本,再通过创建虚拟环境来安装想要的 python 版本都可以。 下载完直接使用 bash bash Anaconda3-5.2.0-Linux-x86_64.sh 命令安装即可,注意选择安装位置。

配置环境

添加镜像源

由于 anaconda 源在国外,访问速度可能很慢,可以添加清华镜像源,能够使下载安装包的速度大大提高。操作非常简单,在 anaconda prompt 中输入

1
2
3
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

创建虚拟环境

可以通过网络搜索得到 anaconda 创建环境的命令为: conda create --name env_zh python=3.6 也可以通过命令 conda -h 或 conda create -h 来查看 conda 自带的帮助手册,自带的帮助说明比网上搜索到的更加详细。还可以通过来 常用的命令如下 conda -h : anaconda自带的帮助命令,很实用,网上搜索到的很多都不详细 conda create -h 创建虚拟环境时的帮助命令,网上搜索不到时很有用 conda create --name env_zh --clone old_env复制或克隆环境,可以复制已经搭建好的环境 conda env list:查看现有的环境列表 conda-env remove -n test2 删除 test2 虚拟环境 conda activate env_zh 切换到 env_zh 虚拟环境 conda deactivate 退出虚拟环境 conda serach tensorflow-gpu搜索 tensorflow-GPU 的安装包,可以看到有多个版本的安装包

安装 tensorflow-GPU

conda install tensorflow-GPU=1.4: 由于服务器上面已经安装了 CUDA,并且版本为 CUDA8,最高只支持tensorflow1.4,如下图所示,1.4 版本的 tensorflowGPU 支持 3.6python 以及 6 版本的 cuDNN 除此之外,其他和 tensorflow 有关的常用命令如下: cat /usr/local/cuda/version.txt : 查看 CUDA 版本的命令 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 查看 cudnn 版本命令 watch nvidia-smi 实时查看当前 GPU 显存占用率

windows 上使用服务器上的 jupyter notebook

在 windows 上使用 Linux 上的虚拟环境的 jupyter notebook 首先要保证在同一个局域网,Linux 上装好 anaconda,然后创建虚拟环境 env_zh,切换到虚拟环境 第一种方法

安装牛逼 conda 包即可, conda install nb_conda, 安装完这个包,在当前环境下再次启动 jupyter notebook 就可以看到所有环境都显示出来了。

第二种方法

如果该方法不行,可以通过 jupyter 插件手动解决,激活环境或,安装 kpykernel conda activate env_zh conda install ipykernel python -m ipykernel install --name env_zh --display-name python env_zh 启动之后根据提示给的网址在 windows 上登录即可,注意将 ip 地址改为服务器的 ip 地址即可。

在 windows 上使用 vscode 同步代码到 Linux 上运行

参考微软官方教程,其实很简单,只需要在服务器上安装 ssh server,在 vscode 中安装远程开发包,然后通过 ip 地址远程连接就可以了。我没有去弄远程调试功能,因为比较麻烦,在服务器命令行中直接使用 python 运行就可以了。虽然官方教程显示远程开发环境搭建需要 Ubuntu16.04 及以上,但是我使用 Ubuntu14.04 也能够安装成功。

测试 GPU 是否可用

在服务器上启动 jupyter server,在 windows 上登录网址,通过运行以下代码可以测试安装 GPU 版本的 tensorflow 是否成功

1
2
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

如果成功,会显示一个 CPU 和 GPU 的信息,我的是显示有 1 个 CPU 和两个 GPU。

在服务器上使用后台运行代码

如果通过 putty 连接服务器来运行代码时,当连接断掉会自动停止,可以让代码在后台运行,这样就可以一直跑程序了。 参考

windows 与 Linux 系统之间的文件互相转移

当在 Ubuntu 上搭建好了深度学习环境,有时数据集在 windows 上,如何将数据集转移到服务器上呢?用 U 盘比较麻烦,这里通过使用共享 windows 文件,然后在 Linux 上挂载文件就可以实现在 Linux 上访问 windows 文件夹的方法了。

具体方法是,首先找到要共享的文件夹,在属性中添加共享,并开启网络发现,在一个局域网中,Linux 通过命令挂载登录到 windows 上的共享文件夹即可成功实现。

参考网上教程。

环境搭建感悟:

  1. ensorflow 版本要和 cuda 和驱动版本对应,要不然无法正确使用 GPU,另外 tensorflow 有 GPU 版本,不能两个一起安装,否则会使用 CPU 版本的。

  2. 查看 GPU 使用情况 watch nvidia-smi
  3. 通过 jupyter notebook 可以远程写代码,通过 vscode 使用 ssh 可以远程调试和编辑 python 代码。
  4. win10 挂载共享文件可以使在 Linux 上访问 Windows 文件夹。
  5. 充分使用 conda 的虚拟环境,可以省很多事情,有时候我们很多时候都把时间浪费到搭建环境中去了,都没有真正的关注深度学习这件事情本身。
本文由作者按照 CC BY 4.0 进行授权