博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos7 源码编译安装TensorFlow CPU 版本
阅读量:4321 次
发布时间:2019-06-06

本文共 2374 字,大约阅读时间需要 7 分钟。

一、前言

我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢。

但是在编译之中,发现很多坑,由此记录一下。

环境相关:

系统:centos7

python版本:2.7.5

 

二、准备

1. 安装相关依赖

# 一般会缺失的依赖yum -y install java-1.8.0-openjdk-devel automake autoconf libtool libicu gcc-c++

 

2. pip安装相关库

# python 相关,连接境外源较慢,建议更换成国内源,比如 douban 等pip install --upgrade pippip install numpy grpcio Keras-Applications Keras-Preprocessing h5py requests enum

 

3. 查看可优化的信息

直接使用pip安装TensorFlow并运行随便一个TensorFlow相关程序,如果出现以下内容则需要优化相关指令集:

将这些信息记录下来,后面会用到。

 

4. 安装Bazel

Bazel是编译TensorFlow的工具,首先下载repo文件:

进入网页 选择自己系统的版本并下载,我的系统是centos7,直接执行命令:

wget https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-7/vbatts-bazel-epel-7.repo

复制到yum.repos.d目录并安装:

cp vbatts-bazel-epel-7.repo /etc/yum.repos.d/yum install bazel

 

5. 下载TensorFlow源码

输入命令:

git clone --recurse-submodules https://github.com/tensorflow/tensorflow

如果没安装git,直接安装一下就行了:

yum -y install git

准备工作到此结束。

 

三、编译

1. 配置编译

进入源码目录并配置:

cd tensorflow/./configure

刚开始会出现让你选择python的一些路径的,输入正确的安装目录就行了。

然后会出现一堆“Do you wish to build TensorFlow with…”的提示,安装自己的情况去选择,不确定的直接回车就行了,不过因为编译的是CPU版本,所以GPU那里需要选n,其他根据实际情况去选择。

最后是一堆配置选择,也是直接回车,默认就可以了。

 

2. 开始编译

根据pip安装的TensorFlow,运行时提示的优化信息,作为优化参数,根据自己的情况输入命令:

bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 //tensorflow/tools/pip_package:build_pip_package

注意这里的优化参数一定要填正确,要不然CPU不支持,但编译了,到时候用的时候有可能会报错。注意这是一个很慢很慢的过程,请耐心等待。编译界面如下。

不过编译期间当然会出现各种错误,譬如我就遇到找不到python相关的头文件的,最后发现都在/usr/include/python2.7/ 目录里,而代码中指向的是/usr/include/,所以只得把python2.7目录里的头文件复制一份到母目录。此外还有很多错误,这个只能根据自己的系统和环境,一个个去解决了,此处省略一万字。

ps:如果编译一般发现之前的参数错了,先clean一下编译输出文件再编译:

bazel clean

不然会出现很奇怪的问题。

如果顺利,编译会经历一个极其漫长的过程,可以先泡杯茶喝喝。

 

3. 创建whl文件

编译完成后在tensorflow下会创建很多符号连接,譬如bazel-bin,运行以下命令创建whl文件:

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

输出如下图所示:

至此,编译并生成whl过程才算完成,最后得到文件tensorflow-1.12.0rc0-cp27-cp27mu-linux_x86_64.whl,根据不同的平台名字会不大一样。

 

四、安装

1. 卸载直接用pip直接安装的版本

pip uninstall tensorflow

 

2. 使用pip安装之前生成的whl文件

pip install /tmp/tensorflow_pkg/tensorflow-1.12.0rc0-cp27-cp27mu-linux_x86_64.whl

如无意外,就安装完成了,输出如下图所示:

 

3. 测试

运行TensorFlow相关代码,如果没有优化提示,证明一切正常。

>>> import tensorflow as tf>>> hello = tf.constant('Hello, TensorFlow!')>>> sess = tf.Session()>>> print sess.run(hello)Hello, TensorFlow!>>> a = tf.constant(10)>>> b = tf.constant(32)>>> print sess.run(a+b)42>>> exit()

 

五、参考

1.

2.

(完)

转载于:https://www.cnblogs.com/harrymore/p/10028489.html

你可能感兴趣的文章
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
Maven配置
查看>>
HttpServletRequest /HttpServletResponse
查看>>
SAM4E单片机之旅——24、使用DSP库求向量数量积
查看>>
从远程库克隆库
查看>>
codeforces Unusual Product
查看>>
hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
查看>>
正则表达式的搜索和替换
查看>>
个人项目:WC
查看>>
地鼠的困境SSL1333 最大匹配
查看>>
flume+elasticsearch+kibana遇到的坑
查看>>
【MM系列】在SAP里查看数据的方法
查看>>
C#——winform
查看>>
CSS3 transform制作的漂亮的滚动式导航
查看>>
《小强升职记——时间管理故事书》读书笔记
查看>>
Alpha 冲刺(3/10)
查看>>