搭建一个机器学习的环境

ubuntu配置一个python机器学习的环境
python3.5.2(anaconda3)+tensorflow1.1+keras2+cuda8.0+cudnn5.1+...

首先介绍一下一共用到的一些配置

查了很多资料,基本上没有基于 ubuntu16.04+py3+keras2+tensorflow1.1+cuda8+cudnn5.1这样一个机器学习环境

配置了2天,查了很多资料,这里总结一下..

下载 anaconda

anaconda 是一个科学计算的python包,很方便..

1
2
3
4
5
6
7
8
# 官网的下载地址
wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh

# 或者使用清华源的镜像
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-4.3.1-Linux-x86_64.sh

然后 进入下载目录
bash Anaconda3-4.3.1-Linux-x86_64.sh

之后创建一个 python3.5.2的镜像,因为 TensorFlow 这玩意不支持3.6(截止至这篇文章打出来,官网已经说是支持3.6,但是 github 上面的仓库并没有更新)具体的可以去看TensorFlow官网github-repo.

1
2
3
4
5
6
7
8
# 创建一个 python3.5.2的名字叫 tensorflow 的一个环境
conda create --name tensorflow python=3.5.2

# 激活这个环境
source activate tensorflow

# 不使用这个环境时
deactivate

下载一些依赖包

1
2
3
4
sudo apt-get update
sudo apt-get --assume-yes upgrade
sudo apt-get --assume-yes install tmux build-essential gcc g++ make binutils
sudo apt-get --assume-yes install software-properties-common

下载 GPU 驱动

这里 选择适合自己版本的驱动下载下来

或者 http://developer.download.nvidia.com/compute/cuda/repos/ 这里也下载

下载 deb 文件之后安装

1
2
3
4
5
6
7
8
9
10
# 后面的改成你安装的版本
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

# 载入驱动
sudo modprobe nvidia

# 测试
nvidia-smi

安装python库,配置一些东西

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 在刚刚创建的 tensorflow 的这个 python3.5.2的环境中
# 注意这里的 TensorFlow 安装 GPU 版本的,但是会在运行时候出现警告,提示如果支持一些指令集就能提高速度,这时候你想的话就去编译源码...这里不多说了
# 这里安装用 pip 也行
# 如果速度过慢,可以去找清华源的镜像
conda install numpy
conda install scipy
conda install matplotlib
conda install tensorflow-gpu
conda install theano
conda install keras
...等等...
# 把你需要的下载下来
# 之后主要的是
conda install bcolz

# 更新库
conda upgrade -y --all
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 配置 theano
echo "[global]
device = gpu
floatX = float32

[cuda]
root = /usr/local/cuda" > ~/.theanorc

# 配置 keras , backend 可以选择 theano 或者 tensorflow
mkdir ~/.keras
echo '{
"image_dim_ordering": "th",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "theano"
}' > ~/.keras/keras.json
1
2
3
4
5
6
# 安装 cudnn
wget "http://platform.ai/files/cudnn.tgz" -O "cudnn.tgz"
tar -zxf cudnn.tgz
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/* /usr/local/cuda/include/

设置 jupyter

运行下面的 bash 脚本 将 * 改成你想设置的密码

1
2
3
4
5
jupyter notebook --generate-config
jupass=`python -c "from notebook.auth import passwd; print(passwd())"`
echo "c.NotebookApp.password = u'"$jupass"'" >> $HOME/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False" >> $HOME/.jupyter/jupyter_notebook_config.py

OK

浏览器打开试一试

http://localhost:8888

扩展

你在远程服务器上面配置好了之后,却打不开相关的 jupyter 页面

有时候你可以建立 ssh 的隧道 就可以实现本地访问

下面是实现本地127.0.0.1:1234访问

1
2
3
4
5
ssh usrname@yourhost -L127.0.0.1:1234:yourhost:port

# 然后进入py3.5.2的环境
source activate tensorflow
jupyter notebook XXX

成功之后打开 jupyter 的网页

import theano 成功就如下显示

Using Theano backend.
WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10). Please switch to the gpuarray backend. You can get more information about how to switch at this URL:
https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29

Using gpu device 0: GeForce GTX 1080 (CNMeM is disabled, cuDNN 5103)

Buy me a coffe. XD