这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产。本人现在非常熟练linux(Ubuntu/centOS/openSUSE)、windows上该环境的搭建 :)

前面三篇博客代码实现均基于该环境(开发或者测试过):

[AI开发]Python+Tensorflow打造自己的计算机视觉API服务

[AI开发]基于深度学习的视频多目标跟踪实现

[AI开发]视频多目标跟踪高级版

运行环境

1) centOS 7.5 ,不要安装GUI桌面;

2) i7八核,GTX 1080 GPU,16G内存。

程序包

1) Python-3.6.5.tgz   (Python安装包)

2) screen-4.6.0.tar.gz  (screen安装包,忽略系统自带的)

3) tensorflow_gpu-1.9.0-cp36-cp36m-manylinux1_x86_64.whl  (tensorflow安装包)

4) cuda_9.0.176_384.81_linux.run      (cuda安装包)

5) cudnn-9.0-linux-x64-v7.1.tgz         (cudnn解压包)

6) NVIDIA-Linux-x86_64-384.130.run     (nvidia显卡驱动)

常用链接:

https://developer.nvidia.com/cuda-90-download-archive (cuda)
https://developer.nvidia.com/rdp/cudnn-archive (cudnn)
https://www.geforce.cn/drivers/results/132524 (显卡驱动)

安装步骤

**安装过程中,设备需要连外网,有一些组件需要在线安装**

>第一步 安装基础库

在命令行终端执行下面三个命令:

sudo yum install openssl-devel -y

sudo yum install bzip2-devel

sudo yum install zlib-devel -y

保证上面三个库安装成功,如果提示已经安装,则忽略。

>第二步 安装python3.6.5

在程序包目录中执行:tar -zvxf Python-3.6.5.tgz,解压Python安装文件;

cd Python-3.6.5进入解压目录;

执行mkdir /usr/python3.6 创建目录;

运行 ./configure --prefix=/usr/python3.6 --enable-shared ,等待;

执行 make 命令,等待;

执行 make install 命令,等待;

执行 ln -s /usr/python3.6/bin/python3 /usr/bin/python3 创建软连接(如果提示已存在,先删除);

执行 python3 --version,查看输出,如果输出python对应的版本号为 3.6.5,则安装成功。

注意:

如果碰到错误信息类似这样 :error while loading shared libraries: xxxxxxxx: cannot open shared object file: No such file or directory(xxxx为文件名)

那么,进入安装文件夹的lib目录下,找到XXXXXXXX,将其拷贝到/usr/local/lib

cp XXXXXX /usr/local/lib

vi /etc/ld.so.conf

在文件末尾新增加一行 /usr/local/lib

然后执行 ldconfig 命令。

再执行 python3 --version 检查输出的版本号是否为 3.6.5

>第三步 配置pip3

执行ln -s /usr/python3.6/bin/pip3 /usr/bin/pip3 创建软连接(如果提示已存在,先删除);

执行 pip3 --version 查看pip3的版本号,如果正确输出版本号,则表示pip3安装成功;

cd ~,进入到用户根目录,执行mkdir .pip创建.pip目录,cd到该目录;

执行 vi pip.conf 创建文件;

在文件中输入:

[global]

trusted-host=mirrors.aliyun.com

index-url=http://mirrors.aliyun.com/pypi/simple/

保存退出。

>第四步 安装tensorflow/keras等相关依赖组件

在程序包目录下

执行 pip3 install tensorflow_gpu-1.9.0-cp36-cp36m-manylinux1_x86_64.whl,安装tensorflow等相关依赖组件(一些组件需要联网);

执行 pip3 install keras ,安装keras等相关依赖组件(需要联网);

执行 pip3 install Pillow,安装Pillow(需要联网);

执行 pip3 install matplotlib,安装matplotlib(需要联网);

>第五步 安装cuda

在程序包目录下

===============================安装cuda前必读============================

注意:

1)安装开始,会显示一大段license,在显示license到1%的时候,按q结束,不然会一直让你读完;

2)除了在“是否安装graphics driver”的步骤选择No之外,其余都选Yes;

3)cuda以及sample的安装路径都保持默认不变(直接回车即可)。

=====================================================================

执行sh ./cuda_9.0.176_384.81_linux.run ,按照提示完成cuda的安装;

执行 vi ~/.bash_profile,打开文件;

在文件末尾增加:

export PATH=/usr/local/cuda-9.0/bin:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

保存退出。

执行 source ~/.bash_profile,使文件生效;

执行 nvcc --version 查看cuda是否安装成功,如果正常输出信息,则表示安装成功。

>第六步 安装cudnn

在程序包目录下

执行 tar -zvxf cudnn-9.0-linux-x64-v7.1.tgz ,解压文件;

cd cuda 进入到解压目录;

执行

cp lib64/lib* /usr/local/cuda/lib64/

cp include/cudnn.h /usr/local/cuda/include/

拷贝文件;

执行

cd /usr/local/cuda/lib64/

chmod +r libcudnn.so.7.1.4

ln -sf libcudnn.so.7.1.4 libcudnn.so.7

ln -sf libcudnn.so.7 libcudnn.so

ldconfig

**cudnn是cuda在深度学习中的一个扩展,只需要拷贝.h和lib到cuda的安装目录即可**

>第七步 安装Nvidia显卡驱动

在程序包目录下

执行 sh ./NVIDIA-Linux-x86_64-384.130.run,等待安装结束;

执行 nvidia-smi 查看显卡信息,如果能正常显示GPU驱动和其他信息,表明显卡驱动安装成功。

>第八步 验证Python算法环境

在python脚本目录下

执行 python3 test.py,如果不报错,并且有模型数据显示出来,说明算法环境部署成功。

[AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建的更多相关文章

  1. 基于 Keras 用深度学习预测时间序列

    目录 基于 Keras 用深度学习预测时间序列 问题描述 多层感知机回归 多层感知机回归结合"窗口法" 改进方向 扩展阅读 本文主要参考了 Jason Brownlee 的博文 T ...

  2. Win10+RTX2080深度学习环境搭建:tensorflow、mxnet、pytorch、caffe

    目录 准备工作 设置conda国内镜像源 conda 深度学习环境 tensorflow.mxnet.pytorch安装 tensorflow mxnet pytorch Caffe安装 配置文件修改 ...

  3. Ubuntu深度学习环境搭建 tensorflow+pytorch

    目前电脑配置:Ubuntu 16.04 + GTX1080显卡 配置深度学习环境,利用清华源安装一个miniconda环境是非常好的选择.尤其是今天发现conda install -c menpo o ...

  4. windows10配置tensorflow深度学习环境(GPU版)各种坑

    我们配置一个tensorflow-gpu版的深度学习环境 windows10 64 python3.5 vs2017(需要C++部分) cuda9.0 cudnn7.1 GeForce GTX1060 ...

  5. 深度学习环境搭建(CUDA9.0 + cudnn-9.0-linux-x64-v7 + tensorflow_gpu-1.8.0 + keras)

    关于计算机的硬件配置说明 推荐配置 如果您是高校学生或者高级研究人员,并且实验室或者个人资金充沛,建议您采用如下配置: 主板:X299型号或Z270型号 CPU: i7-6950X或i7-7700K ...

  6. (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决

    区别于其他入门教程的"手把手式",本文更强调"因"而非"果".我之所以加上"通用"字样,是因为在你了解了这个开发环境之后 ...

  7. 深度学习环境搭建(Ubuntu16.04+GTX1080Ti+CUDA8.0+Cudnn6.0+TensorFlow+Caffe2(Pytorch))

    OS System:Ubuntu16.04 GPU Device:GTX1080Ti Softwares:CUDA8.0.Cudnn6.0.TensorFlow(1.4.0).Caffe2(1.0.0 ...

  8. linux 服务器 keras 深度学习环境搭建

    感慨: 程序跑不起来,都是环境问题. 1. 安装Anaconda https://blog.csdn.net/gdkyxy2013/article/details/79463859 2. 在 Anac ...

  9. 基于scikitlearn的深度学习环境安装(三)(完整版)

    OS Linux  Ubuntu14.04 安装 pip (python2.7.9或以上自带pip) sudo apt-get install python-pip pip是python环境下安装包的 ...

随机推荐

  1. linux ulimit 调优

    概要:linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够.这就需要修改ulimit和file-m ...

  2. rsyslog & syslog详解

    前言: rsyslog 是一个 syslogd 的多线程增强版.syslog是Linux系统默认的日志守护进程.默认的syslog配置文件是/etc/syslog.conf文件.程序,守护进程和内核提 ...

  3. 设计模式(Design Patterns)Java版

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  4. range与enumerate的区别

    在迭代中enumerate比range更能灵活,一般情况下尽量用erumerate,下面举例说明: 先来看range的使用: city_list = ['beijing', 'shanghai', ' ...

  5. app后端设计(2)--xmpp的使用(2014.01.14更新)

    在app中有时候是需要添加聊天服务,在这里谈谈曾经开发聊天服务的经验: (1)聊天服务端选的openfire,这是一个基于xmpp协议的聊天服务器(XMPP是一种基于XML的协议,它继承了在XML环境 ...

  6. LaTeX 中图片格式错误情况

    Unknown graphics extension: .eps 利用宏包usepackage {graphicx} 是图片和pdflatex一起用时的错误.注:{不是所有的时候,有时候也能通过} 两 ...

  7. Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38140505 自从Gallery被谷歌废弃以后,Google推荐使用ViewPa ...

  8. Python 列表list

    列表list: [ ] 类似Java中的数组. 通过索引可以取到具体位置上的值. names = ["ZhangYang","WangGui","Li ...

  9. 优化TestNG测试报告

    以下内容引自: https://www.cnblogs.com/jwentest/p/7073223.html 优化testng报告   背景 搞过testng的同学都知道,testng自带的报告非常 ...

  10. bzoj 3195 奇怪的道路 状压dp

    看范围,状压没毛病 但是如果随便连的话给开1<<16,乘上n,m就爆了 所以规定转移时只向回连边 于是想状态数组:f[i][j]表示到i这里i前K位的状态为j(表示奇偶) 发现有条数限制, ...