CentOS 7 下使用虚拟环境Virtualenv安装Tensorflow cpu版记录

来源:互联网 发布:儿童服饰品牌知乎 编辑:程序博客网 时间:2024/06/13 12:28

1.首先安装pip-install

在使用centos7的软件包管理程序yum安装Python-pip的时候会报一下错误:

No package python-pip available. 
Error: Nothing to do 
说没有python-pip软件包可以安装。

这是因为像centos这类衍生出来的发行版,他们的源有时候内容更新的比较滞后,或者说有时候一些扩展的源根本就没有。所以在使用yum来search python-pip的时候,会说没有找到该软件包。 
因此为了能够安装这些包,需要先安装扩展源EPEL。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。 
首先安装epel扩展源:

sudo yum -y install epel-release

然后安装python-pip:

sudo yum -y install python-pip

安装完之后别忘了清除一下cache:

sudo yum clean all

搞定!

2.在隔离容器中安装TensorFlow

推荐使用virtualenv 创建一个隔离的容器, 来安装 TensorFlow. 这是可选的, 但是这样做能使排查安装问 
题变得更容易,照着敲命令就行了

安装主要分成下面四个步骤: 
● Install pip and Virtualenv.(这一步装过了) 
● Create a Virtualenv environment. 
● Activate the Virtualenv environment and install TensorFlow in it. 
● After the install you will activate the Virtualenv environment each time you want to use TensorFlow. 
Install pip and Virtualenv: 
# Ubuntu/Linux 64-bit

$ sudo apt-get install python-pip python-dev python-virtualenv

# Mac OS X

$ sudo easy_install pip$ sudo pip install --upgrade virtualenv

Create a Virtualenv environment in the directory ~/tensorflow:

$ virtualenv --system-site-packages ~/tensorflow

Activate the environment:

$ source ~/tensorflow/bin/activate  # If using bash$ source ~/tensorflow/bin/activate.csh  # If using csh

(tensorflow)$ # Your prompt should change

Now, install TensorFlow just as you would for a regular Pip installation. First select the correct binary to install: 
# Ubuntu/Linux 64-bit, CPU only, Python 2.7

    (tensorflow)$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl

Finally install TensorFlow: 
# Python 2

(tensorflow)$ pip install --upgrade $TF_BINARY_URL

出现了如下错误:

InstallationError: Command python setup.py egg_info failed with error code 1 in /root/tensorflow/build/mock

解决方案是: 
Distribute has been merged into Setuptools as of version 0.7. If you are using a version <=0.6, upgrade using :

pip install --upgrade setuptools 

or

easy_install -U setuptools.

其实就是安装的egg需要升级一下把,我猜测

升级之后重新 :

(tensorflow)$ pip install --upgrade $TF_BINARY_URL

等待一段时间,(我似乎看到tensorflow在用gcc编译c++,c,时间还挺长大概十来分钟) 
看到 
Successfully installed tensorflow protobuf six wheel mock numpy funcsigs pbr 
Cleaning up… 
就ok

3.测试代码

import tensorflow as tfimport numpy as np# 使用 NumPy 生成假数据(phony data), 总共 100 个点.x_data = np.float32(np.random.rand(2, 100)) # 随机输入y_data = np.dot([0.100, 0.200], x_data) + 0.300# 构造一个线性模型b = tf.Variable(tf.zeros([1]))W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))y = tf.matmul(W, x_data) + b# 最小化方差loss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)# 初始化变量init = tf.initialize_all_variables()# 启动图 (graph)sess = tf.Session()sess.run(init)# 拟合平面for step in xrange(0, 201):        sess.run(train)if step % 20 == 0:        print step, sess.run(W), sess.run(b)


在命令行输入:

source ~/tensorflow/bin/activate

激活tensorflow环境,运行上述代码

(tensorflow)[root@www test]# python nihe.py

# 得到最佳拟合结果

  W: [[0.100 0.200]], b: [0.300]

退出虚拟环境:

(tensorflow)$ source deactivate
0 0