centos 6安装tensorflow

来源:互联网 发布:企业号码搜索软件 编辑:程序博客网 时间:2024/05/18 18:43

前言:网上的一些安装教程,关于centos的很少。由于楼主使用的是centos6.8(开始好像是6.4,之前装docker,有点问题,升级了下[应该是yum update],最后成6.8了),所以就开始参考网上教程安装,开始我是参考http://www.tensorfly.cn/tfdoc/get_started/os_setup.html 进行安装,但是一直没有成功,通过docker安装,又报错误,好像地址问题(可能需要翻墙吧),然后我就想装个shadowsocks,就参照了http://www.111cn.net/sys/linux/87327.htm进行安装(下边的2、3、5,就是参照了这个安装的)。最后也没什么成果。后来看到了http://www.jianshu.com/p/fdb7b54b616e,发现原来对centos6还是可以自己通过编译源码来做,所以就参考了这篇文章中的流程。但是安装很不顺利,遇到了不少问题,最后还是成功安装,但是想想当中,真是分分钟钟想放弃。写此文章,给大家参考,但是楼主水平有限,很多也是不懂,不对之处,还望大家多多指出,共同学习。


1、由于系统里的python版本是2.6,楼主先安装python2.7。
下载Python-2.7.3.tar.bz2
tar zxvf Python-2.7.3.tar.bz2
cd Python-2.7.3 
./configure

注意,这里需要编辑下文件,不然会报错(错误描述和解决的网址,我忘了在哪里了)
vim Modules/Setup
将zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz    这句话的注释打开

然后make && make install

其他步骤参考:http://blog.csdn.net/jcjc918/article/details/11022345

2、安装setuptools
我最开始安装时,使用的是
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg –no-check-certificate
sh setuptools-0.6c11-py2.7.egg
然后进行第3步的安装pip

但是在编译tensorflow的时候,提示版本过低,所以就卸载了最开始安装的那个(yum remove python-setuptools.noarch好像是这个语句吧),然后在https://pypi.python.org/pypi/pip/,下载了setuptools-33.1.1-py2.py3-none-any.whl,再通过pip安装的。

3、安装pip

在  https://pypi.python.org/pypi/pip/   下载了pip-9.0.1.tar.gz,然后 

tar zxvf pip-9.0.1.tar.gz 
cd pip-9.0.1
python setup.py install

4、pip安装软件
  在https://pypi.python.org/pypi/scipy/下载scipy-0.18.1-cp27-cp27m-manylinux1_x86_64.whl
  pip install scipy-0.18.1-cp27-cp27m-manylinux1_x86_64.whl
  
  在https://pypi.python.org/pypi/numpy/下载numpy-1.12.0-cp27-cp27m-manylinux1_x86_64.whl
  pip install numpy-1.12.0-cp27-cp27m-manylinux1_x86_64.whl
 
  其他软件安装(不清楚哪些没有用到):
yum install python-six  
pip install requests
pip install protobuf
pip install scikit-learn
pip install sckit-image
 
5、安装swig(有些说是需要的,我也不清楚)
wget http://jaist.dl.sourceforge.net/project/swig/swig/swig-3.0.0/swig-3.0.0.tar.gz
tar zxvf swig-3.0.0.tar.gz
cd swig-3.0.0
./configure
make & make install

6、安装glibc-2.14
当中忘了是安装什么,提示需要glibc-2.14,我就进行了安装,参考http://www.linuxdiyf.com/linux/23702.html,安装前,先看完下边遇到问题的说明,因为如果不先执行下边的语句,make install的时候,会报错。

注:楼主系统重启后,发行strings /lib64/libc.so.6 | grep GLIBC 没有2.14的,就再执行下 ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

7、安装gcc-4.9.2
参考:http://www.linuxidc.com/Linux/2016-03/129694.htm
make install安装后,配置环境变量时,我开始是
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH
但是,后边在编译tensorflow时,还是提示需要glibc3。。。,于是我就在/etc/ld.so.conf.d/下新建了gcc-x86_64.conf,增加了这2行目录
/usr/local/lib
/usr/local/lib64

然后ldconfig


注:新增的环境变量我基本都用export,当临时变量来用的。

8、安装jdk1.8
下载jdk-8u121-linux-x64.tar.gz,解压tar zxvf jdk-8u121-linux-x64.tar.gz,配置环境变量
export JAVA_HOME=/home/用户名/tools/jdk1.8.0_121   (自己解压的目录)
export PATH=$JAVA_HOME/bin:$PATH

9、 安装bazel
在https://github.com/bazelbuild/bazel/releases下载bazel-0.4.3-installer-linux-x86_64.sh,sh bazel-0.4.3-installer-linux-x86_64.sh
安装完后,可以执行bazel看看。(开始用源码安装,但是有不少问题,就采用直接使用这种方式安装)

10、安装tensorflow
先下载
git clone https://github.com/tensorflow/tensorflow
cd tensorflow

但是楼主当前这个版本在本机编译,是有一个问题,需要修改一个文件,问题描述及解决:https://github.com/tensorflow/tensorflow/issues/121
vim tensorflow/tensorflow.bzl
将:
def tf_extension_linkopts():
return []  # No extension link opts
改为:
def tf_extension_linkopts():
return ["-lrt"]



然后进行tensorflow配置 (由于楼主在后边的编译中出现了jemalloc的错误,所以,在配置的时候,楼主jemalloc选择的是N,当然也可以当时内存不够的问题。其他都是默认)
./configure

进行编译(注意,在编译前,要查看你的系统内存是否过小,楼主使用的是虚拟机,内存设置的时1G,编译会报错,后边我改为4G。问题描述:https://github.com/tensorflow/models/issues/768)
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

编译结束后(时间也挺长的)

安装有的通过python安装,但是我在安装过程中也出现了一些问题(可能是前边出现的问题没有解决或者其他),所以还是生成whl文件吧
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-0.12.1-cp27-cp27m-linux_x86_64.whl

网上的验证例子:(注意,如果你在你下载的tensorflow目录下的,执行下边的,会出现错误ImportError: cannot import name pywrap_tensorflow Failed to load the native TensorFlow runtime.,需要退出tensorflow目录,问题及解决参考:https://stackoverflow.com/questions/35953210/error-running-basic-tensorflow-example)
$ python


>>> 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
>>>

执行sess = tf.Session()时可能提示W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.这是正常的。应该是因为我使用的是cpu模式吧
0 0
原创粉丝点击