这篇文章详细介绍在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. 富文本编辑器UEditor自定义工具栏(三、自定义工具栏功能按钮图标及工具栏样式简单修改)

    导读 富文本编辑器UEditor提供丰富了定制配置项,如果想设置个性化的工具栏按钮图标有无办法呢?答案是肯定的!前两篇博文简要介绍了通过将原工具栏隐藏,在自定义的外部按钮上,调用UEditor各命令实 ...

  2. web优化(一)

    今天读完了<高性能网站建设进阶指南>,记得博客园的某位前辈说,关于前端方面的书,带指南两个字的一般都是比较牛逼的,上一本看到的好书是<javascript权威指南>是淘宝前段团 ...

  3. java 中 “==” 和 equals 的区别

    转自https://www.cnblogs.com/www123----/p/7857298.html 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new Strin ...

  4. MySQL 在线更改 Schema 工具

    MySQL在线更改schema的工具很多,如Percona的pt-online-schema-change. Facebook的 OSC 和 LHM 等,但这些都是基于触发器(Trigger)的,今天 ...

  5. loj548 「LibreOJ β Round #7」某少女附中的体育课

    这道题好神啊!!! 发现这题就是定义了一种新的卷积,然后做k+1次卷积. 这里我们就考虑构造一个变换T,使得$T(a) \cdot T(b) =T(a∘b)$,这里是让向量右乘这个转移矩阵. 于是我们 ...

  6. eclipse使用javaFX写一个HelloWorkld

    ------------------------------------------------ 操作系统:Ubuntu18.04 EclipseVersion: Oxygen.3a Release ...

  7. monkey----测试中的要求

       测试中的要求:   (1)导出的log命名以测试机的imei号为主或者是以测试机的编号为主,这样方便找到测试机,避免出现问题后无法找到机器,难以定位问题. 导出的log文件后缀名以.log命名, ...

  8. 菜鸟如何反转到资深Web安全工程师

    90后理工男,计算机专业,毕业于985院校,从事Web安全工作,两年多的时间里先后跳槽3家公司,跳槽理由主要有以下几点:加班多.薪资低.工作内容枯燥,不想安于现状,寄希望于通过跳槽找到一个“钱多.活少 ...

  9. 死磕 java集合之PriorityQueue源码分析

    问题 (1)什么是优先级队列? (2)怎么实现一个优先级队列? (3)PriorityQueue是线程安全的吗? (4)PriorityQueue就有序的吗? 简介 优先级队列,是0个或多个元素的集合 ...

  10. C#之Socket的简单使用

    Socket是一种通信TCP/IP的通讯接口,也就是HTTP的抽象层,就是Socket在Http之上,Socket也就是发动机.实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又 ...