这篇文章详细介绍在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. datetime日期和时间

    datetime是Python处理日期和时间的标准库. from datetime import datetime # 获取当前时间 now = datetime.now() print(now) # ...

  2. spawn-fcgi运行fcgiwrap

    http://linuxjcq.blog.51cto.com/3042600/718002 标签:休闲 spawn-fcgi fcgiwarp fcgi 职场 原创作品,允许转载,转载时请务必以超链接 ...

  3. Python爬虫三年没入门,传授一下绝世神功,经理唏嘘不已!

    长期枯燥的生活,敲代码的时间三天两头往吸烟室跑,被项目经理抓去训话. "入门"是学习Python最重要的阶段,虽然这个过程也许会非常缓慢.当你心里有一个目标时,那么你学习起来就不会 ...

  4. 多线程动态规划算法求解TSP(Traveling Salesman Problem) 并附C语言实现例程

    TSP问题描述: 旅行商问题,即TSP问题(Travelling Salesman Problem)又译为旅行推销员问题.货郎担问题,是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须 ...

  5. 【BZOJ 1002】: [FJOI2007]轮状病毒

    题目大意:(略) 题解: 第一眼,这不是矩阵树裸体,看了看样例,心想3就有16,那100岂不是要上天…… 果然炸long long……emmmm该不会要打高精除吧……害怕,按照老师的话,不可能考高精除 ...

  6. bzoj 1485 [HNOI2009]有趣的数列 卡特兰数

    把排好序的序列看成一对对括号,要把他们往原数列里塞,所以就是括号序合法方案数 即为卡特兰数 f(n)=Cn2nn+1 求的时候为避免除法,可以O(n)计算每个素数出现次数,最后乘起来,打完之后发现其实 ...

  7. 谈谈.NET架构师面试及如何设计面试题

    上星期:应老东家的要求,帮其面试.NET架构师. 于是:老东家进行了一星期的简历收集: 终于:在一堆简历里,精挑细选了四个: 约了:周末上午下午各两个. 面试者年龄:在30-35岁左右,差不多10年. ...

  8. SpringBoot(二)_项目属性配置

    修改端口 在main/resources/application.properties修改端口 server.port=8088 此时启动访问localhost:8088/hello 就会看到 Hel ...

  9. Java开源生鲜电商平台-团购模块设计与架构(源码可下载)

    Java开源生鲜电商平台-团购模块设计与架构(源码可下载) 说明:任何一个电商系统中,对于促销这块是必不可少的,毕竟这块是最吸引用户的,用户也是最爱的模块之一,理由很简单,便宜. 我的经验是无论是大的 ...

  10. 一行代码实现数组去重(ES6)

    ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; ...