基于CentOS7安装Python与Tensorflow GPU及科学计算环境实践日志

人工智能及Python 专栏收录该内容
73 篇文章 1 订阅

写在开始之前

# cd /usr/bin
# ls python*
python  python2  python2.7

默认Centos7中是有python安装的,但是是2.7版本,这个版本被系统很多程序所依赖,所以不建议删除,保险起见,最好先做好备份。
$ mv python python.bak

1、安装python3.6.x

$ yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

$ tar -zxvf Python-3.6.8.tgz
$ cd Python-3.6.8
$ mkdir -p /usr/local/python3
$ ./configure --prefix=/usr/local/python3
$ make
$ make install
$ cd  /usr/local/python3

注:
稍微解释上面这句命令,这句话的大致目的就是把python的安装目录指定一下,这样的话,里面的一些bin目录、lib目录就都会存放在这个目录下面。如果不指定这个安装目录的话,最后python的安装文件将分散到linux的默认目录,不在一块。我们指定安装目录,以后卸载的话直接删除目录就可以干净卸载了。

链接到python

ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3  /usr/bin/pip

更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用。

vi /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2

vi /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2

通过 python -V,查看当前版本为:Python 3.6.8

2、Python科学计算相关环境安装

(1)NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
[root@bogon python]# pip install numpy

(2)SciPy是世界上著名的Python开源科学计算库,建立在Numpy之上。它增加的功能包括数值积分、最优化、统计和一些专用函数。例如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等等。
[root@bogon python]# pip install scipy

(3)Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式和跨平台交互式环境的出版物质量数据。
[root@bogon python]# pip install matplotlib

(4)scikit-learn简称sklearn,支持包括分类、回归、降维和聚类四大机器学习算法。还包含了特征提取、数据处理和模型评估三大模块。sklearn是Scipy科学计算库的扩展,建立在NumPy和matplotlib库的基础上。利用这几大模块的优势,可以大大提高机器学习的效率。
Scikit-learn项目最早由数据科学家 David Cournapeau 在 2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。
[root@bogon python]# pip install -U scikit-learn

(5)使用nose 进行Python项目的自动化测试
[root@bogon python]# pip install nose

(6)XGBoost(eXtreme Gradient Boosting)全名叫极端梯度提升,XGBoost是集成学习方法的王牌,在Kaggle数据挖掘比赛中,大部分获胜者用了XGBoost,XGBoost在绝大多数的回归和分类问题上表现的十分顶尖。

From XGBoost version 0.72 onwards, installation with GPU support for python on linux platforms

[root@bogon python]# pip install xgboost

(7)scikit-image(Python3的选择),是用于图像处理的 Python 包,使用原生的 NumPy 数组作为图像对象。它包括分割,几何变换,色彩操作,分析,过滤等算法。它用作集成到python运算环境几何一些科学运算库(Numpy,Scipy)。
[root@bogon python]# pip install scikit_image

(8)Flask 是一个 Python 实现的轻量级的 Web 开发微框架。在这里用以实现restful接口。
[root@bogon python]# pip install flask

(9)Mongo DB数据驱动
[root@bogon python]# python -m pip install pymongo

(10)OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
[root@bogon python]#pip install opencv-python

安装Tensorflow GPU

安装Tensorflow GPU所需的系统环境,详见文档《CentOS7安装NVIDIA显卡(型号:GeForce GTX 1050 Ti)及CUDA笔记》,在Python上使用pip命令安装,很简单。

$ pip install tensorflow-gpu

同时,把卸载命令也使用了。
$ pip uninstall tensorflow-gpu

在调用tensorflow时报错,先看看问题:
(1)报错

ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
[root@bogon python]# find / -name libcublas.so.10*
/usr/lib64/libcublas.so.10.1.0.105

看来是版本不兼容,卸载当前的cuda,同时更换cudnn,详见文档参考【4】。
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
(2)报错

ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory

这个报错要么是环境变量配置问题(可能是其中lib64未指明),要么是CUDNN连接建立问题,详见文档参考【4】。
重复参考文档【4】中重要内容sudo ldconfig #立即生效
卸载tensorflow后,再次重新安装pip install tensorflow-gpu。

测试Tensorflow gpu

[root@bogon NsightCompute-1.0]# python
Python 3.6.8 (default, Apr 22 2019, 18:18:12) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
2019-04-24 15:05:13.390841: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-04-24 15:05:13.520467: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:998] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-04-24 15:05:13.521021: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x4cf5770 executing computations on platform CUDA. Devices:
2019-04-24 15:05:13.521040: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): GeForce GTX 1050 Ti, Compute Capability 6.1
2019-04-24 15:05:13.522649: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2808000000 Hz
2019-04-24 15:05:13.523186: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x4d5e210 executing computations on platform Host. Devices:
2019-04-24 15:05:13.523200: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): <undefined>, <undefined>
2019-04-24 15:05:13.523654: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1433] Found device 0 with properties: 
name: GeForce GTX 1050 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.43
pciBusID: 0000:01:00.0
totalMemory: 3.94GiB freeMemory: 3.52GiB
2019-04-24 15:05:13.523675: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1512] Adding visible gpu devices: 0
2019-04-24 15:05:13.525462: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-04-24 15:05:13.525482: I tensorflow/core/common_runtime/gpu/gpu_device.cc:990]      0 
2019-04-24 15:05:13.525491: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1003] 0:   N 
2019-04-24 15:05:13.525648: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/device:GPU:0 with 3304 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1)
True

在这里插入图片描述

监控GPU运行情况

$ watch -n 3 nvidia-smi
在这里插入图片描述
由于本人初学,遇到了些坑,从安装CentOS操作系统到测试Tensorflow运行CNN程序,耗费了整整一周时间,996啊!有不足的地方及遗漏,欢迎读者反馈指导。

参考:

[1]《Linux下安装scikit-learn教程》 CSDN博客 修炼之路 2017年7月
[2]《Windows10(64bit)环境下Python3 + Tensorflow安装》 CSDN博客 肖永威 2018年8月
[3]《Centos 7安装python3》 博客园 汜慕魂落 2017.10
[4]《CentOS7安装NVIDIA显卡(型号:GeForce GTX 1050 Ti)及CUDA笔记》 CSDN博客 肖永威 2019年4月

  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值