ubutnu16.04搭建深度学习环境: python3 + keras + tensflow
- 一、硬件信息
- 查看cpu型号
- 查看显卡型号
- 查看系统版本
- 二、软件安装
- 2.1安装anaconda3
- 2.2 安装keras
- 2.3 设置GPU支持
- 2.3.1 安装驱动
- 2.3.2 安装CUDA
- 2.3.3 安装cuDNN
- 4.安装tensorflow-gpu
- 5.安装keras
一、硬件信息
深度学习需要训练模型,一块英伟达的显卡必不可少。初学者,资金不太充裕,就买了一块navida RTX系列显卡。
查看cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
12 Intel® Core™ i7-7800X CPU @ 3.50GHz
查看显卡型号
nvidia-smi
查看系统版本
uname -a
Linux ubun 4.15.0-50-generic #54~16.04.1-Ubuntu SMP Wed May 8 15:55:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
二、软件安装
2.1安装anaconda3
anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。可以帮助python开发者省去很多安装科学包的工作。下面我们就来简单介绍如何在Ubuntu16.04环境下安装Anaconda3。
从2019.04.16日起,应anacoanda官方要求,清华源下架了anaconda3的镜像。自此下载此工具需要到官方网站下载。
提醒一点,镜像500M左右,使用迅雷下载镜像,会稍微快一点。
下载完成后,从命令行进入到Anaconda3-5.0.1-Linux-x86_64.sh文件所在的路径下:
sudo bash Anaconda3-5.0.0-Linux-x86_64.sh
接下来,它会提示你是否接受协议,这里直接输入yes,再按回车即可(不要直接按回车,这样默认是no)
接下来,会提示你指定安装路径,这里可以使用默认的,也可以自己指定。
然后就是等待安装进程完成,完成后会提示你是否要将Anaconda的安装路径添加到PATH环境变量中,输入yes就好了。
如果输入no,那么我们就需要自己手动在.bashrc文件中添加export PATH="/opt/anaconda3/bin:$PATH",然后再在命令行中输入source ~/.bashrc
至此,Anaconda就安装好了,在测试Anaconda是否安装成功之前,我们需要先关闭当前的终端,重启开启另一个终端后,才可以进行测试,输入python来查看是否安装成功
$ python
Python 3.6.2 |Anaconda, Inc.| (default, Sep 22 2017, 02:03:08)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
2.2 安装keras
如果此时你打开了jupyther-notebook,想测试一下mnist数据集,那么你会失望的,不要问我为什么,不然不会有这一步了。哈哈。
conda install keras
安装keras的时候,他的后端相关的所有依赖(比如tensorflow)都会安装好。此时再测试就是OK的。此处提供一个网上的代码:
'''Trains a simple deep NN on the MNIST dataset.
Gets to 98.40% test accuracy after 20 epochs
(there is *a lot* of margin for parameter tuning).
2 seconds per epoch on a K520 GPU.
'''
from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import RMSprop
batch_size = 128
num_classes = 10
epochs = 20
import numpy as np
# 内置load_data() 多次加载数据都是失败 于是下载数据后 自定义方法
def load_data(path="/home/ubuntu/1-AI/mnist.npz"):
f = np.load(path)
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test'], f['y_test']
f.close()
return (x_train, y_train), (x_test, y_test)
print("1--------------------------")
# the data, split between train and test sets
(x_train, y_train), (x_test, y_test) = load_data()
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')
# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes, activation='softmax'))
model.summary()
model.compile(loss='categorical_crossentropy',
optimizer=RMSprop(),
metrics=['accuracy'])
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
上述代码中load_data()函数没有用mnist对象内置的函数,而是自己实现的。如果你直接下载该数据集很慢,不妨尝试load绝对路径,mnist数据及其测试程序可以参考该链接,下载分数想改为0,但是一直改不过来。也可以随便找一个。(https://download.csdn.net/download/dongqing27/11247395)
细心的同学会发现,anaconda安装好以后,ubuntu终端命令行前多了一个“(base)”,这是因为anaconda自动加入了命令到 .bashrc中, 在我们打开终端的时候自动 执行了 conda activate base 命令,进入到了base环境下。此时,使用的pythons, pip, tensorflow 都是此环境中的版本。如果想换一种版本,需要重新配置环境,创建新环境名称,这个后边再说。
2.3 设置GPU支持
上边的代码运行过后,发现,每一个Epoch需要8s左右的计算时间。这说明设备的GPU没有被调用。此时想办法设置GPU支持。
步骤是:安装显卡驱动 + 安装CUDA(GPU加速) + 安装cuDNN(深度学习加速库)。
2.3.1 安装驱动
到英伟达官网下载显卡对应驱动。
到此界面中产品类型,型号等会自己填充。自己只需选择操作系统即可。点击搜索,会出现推荐的驱动程序,点击进入驱动程序信息页面,下载:NVIDIA-Linux-x86_64-430.14.run ,然後其他網頁說明進行安裝:
1.卸載系統默認英偉達驅動
sudo apt-get remove –purge nvidia*
2.安裝下載好的驅動
Ctrl-Alt+F1 //进入命令行界面
sudo chmod a+x ./NVIDIA-Linux-x86_64-430.14.run
sudo ./NVIDIA-Linux-x86_64-430.14.run –no-x-check –no-nouveau-check –no-opengl-files
–no-x-check 安装驱动时关闭X服务
–no-nouveau-check 安装驱动时禁用nouveau
–no-opengl-files 只安装驱动文件,不安装OpenGL文件
安装过程中可能会提示警告不匹配之类的,不用管只管安装就行。
3.卸载
安装出现问题,可以执行下面命令卸载:
sudo ./NVIDIA-Linux-x86_64-430.14.run --uninstall
2.3.2 安装CUDA
(1)首先,在CUDA官网选择适合自己系统的版本下载。
(2)推荐安装步骤如下:
sudo dpkg -i cuda-repo-ubuntu1604-10-1-local-10.1.168-418.67_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-
/7fa2af80.pub //此处
是10-1-local-10.1.168-418.67
sudo apt-get update
sudo apt-get install cuda
(3)添加环境变量:
sudo vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
(4) 查看安装
nvcc -V
看到版本V10.1.168便知安装包安装成功。
2.3.3 安装cuDNN
在官网下载安装包。值得注意的是需要注册登录才能下载,是注册,而不是选择qq或者微信登录。
选择适合自己的版本(选择deb安装包,可直接安装完成,而不需要人为拷贝):在这我选择:cuDNN Runtime Library for Ubuntu16.04 (Deb),下载下来的文件是:libcudnn7_7.6.0.64-1+cuda10.1_amd64.deb。
安装:
sudo dpkg -i libcudnn7_7.6.0.64-1+cuda10.1_amd64.deb
4.安装tensorflow-gpu
训练模型时,配置好nvidia显卡还不够,还需要选择的backend支持。默认安装的tensorflow是cpu版本的,参照安装说明,安装gpu版本:
在这里插入图片描述
安装命令:
pip install tensorflow-gpu
如果你的下載速度十分慢,那這裏有一個方法可以試一下:
具体操作步骤:
1、敲开终端
2、敲命令
~$ mkdir ~/.pip
~$ vim ~/.pip/pip.conf //vim使用方法十分簡單,請自行百度。
3、编辑文件内容
[global]
index-url = http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com
5.安装keras
sudo pip3 install keras
现在你可以尝试运行一个 Keras 脚本,比如这个 MNIST 示例。
python examples/mnist_cnn.py
注意,完整运行这个示例可能需要几分钟。因此,在确认 Keras 可以正常运行之后,你可
以随时强制退出(按 Ctrl-C)。
运行 Keras 至少一次之后,就可以在 ~/.keras/keras.json 找到 Keras 的配置文件。你可以编
辑这个文件,选择运行 Keras 的后端: tensorflow 、 theano 或 cntk 。你的配置文件应该是
这样的。
{
"image_data_format": "channels_last",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
运行 examples/mnist_cnn.py 这个 Keras 脚本时,你可以在另一个 shell 窗口中监控 GPU 利
用率。
$ watch -n 5 NVIDIA-smi -a --display=utilization
一切安装完成,恭喜你!现在可以开始构建深度学习应用了。