ubutnu16.04搭建深度学习环境: python3 + keras

系统 1566 0

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

            
          

ubutnu16.04搭建深度学习环境: python3 + keras + tensflow_第1张图片

查看系统版本

            
              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 安装驱动

到英伟达官网下载显卡对应驱动。

ubutnu16.04搭建深度学习环境: python3 + keras + tensflow_第2张图片
到此界面中产品类型,型号等会自己填充。自己只需选择操作系统即可。点击搜索,会出现推荐的驱动程序,点击进入驱动程序信息页面,下载: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官网选择适合自己系统的版本下载。
ubutnu16.04搭建深度学习环境: python3 + keras + tensflow_第3张图片 (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。
ubutnu16.04搭建深度学习环境: python3 + keras + tensflow_第4张图片 安装:
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
一切安装完成,恭喜你!现在可以开始构建深度学习应用了。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论