Tensorflow安装教程

参考文章链接:
https://blog.csdn.net/u013832707/article/details/73161071

1. 安装环境
  1. System version: Ubuntu16.04 LTS
  2. Cuda version: 9.1、Cudnn version: 7.0
  3. Anaconda
  4. gcc、g++ version: 5.4
2. 从源码安装(实在迫不得己,不推荐,都是坑)
1. 安装Bazel

1.安装Bazel的方法有三种,选择其中一种安装即可。Bazel的版本尽可能选择新的

2.我是用apt安装的Bazel,这里只介绍这里。至于其它安装方法,可以查看官网

Step 1: Install the JDK

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

配置openjdk 8为默认java环境:

sudo update-alternatives --config java
sudo update-alternatives --config javac

Step 2: Add Bazel distribution URI as a package source

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

Step 3: Install and update Bazel

sudo apt-get update && sudo apt-get install bazel
sudo apt-get upgrade bazel

3.获取tensorflow源码

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

4.安装Cuda及Cudnn,可以参见我的另一篇博文(推荐Cuda8.0、Cudnn5.1,没那么多事)

5.安装MKL,去英特尔官网下载,下载完解压,运行./install.sh即可,完成后添加环境变量

export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH

这里提供我下载好的MKL链接:
链接: https://pan.baidu.com/s/1_xnVBCV0La1D5Jh14NTeiw , 密码: nqnf

6.编译tensorflow

sudo ./configure 

进行配置选择,如果不知道,则选择n

这里写图片描述
7.进行编译

sudo bazel build --config=opt --config=cuda --config=monolithic //tensorflow/tools/pip_package:build_pip_package

这里写图片描述
这里写图片描述

如果编译出现missing input file ‘//third_party/mpi:mpio.h’错误信息,如图所示,可以重新configure,关闭mpi选择。其他解决方法我也不会,如果某位大佬会的话,请教教我。
这里写图片描述

8.bazel编译命令建立了一个名为build_pip_package的脚本。运行如下的命令将会在 /tmp/tensorflow_pkg路径下生成一个.whl文件:

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

这里写图片描述
9.安装.wheel文件

sudo pip install /tmp/tensorflow_pkg/tensorflow-1.8.0rc1-cp36-cp36m-linux_x86_64.whl

这里写图片描述
10.验证安装

重新打开个终端,不要在tensorflow目录下运行

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!

如果出现libcudart.so.9.1 can’t open的错误,则可以尝试以下命令

$ cd
$ vim .bashrc
# 在.bashrc文件后,添加下列命令
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/
$ source .bashrc
3. pip安装

1.现在的tensorflow最新版本为1.7,支持Cuda9.0。如果你的Cuda版本也是和我一样是9.1的话,可以选择源码编译安装或者是创建虚拟环境,用conda安装。这个我在稍后会讲到。

2.用pip安装的话,以python3.6为例

CPU only:

pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.7.0-cp36-cp36m-linux_x86_64.whl

GPU support:

pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.7.0-cp36-cp36m-linux_x86_64.whl

更多细节,移步官网.

4. conda安装

1.conda安装的话,先安装anaconda这个软件。这个软件可以到这里下载,下载完后,运行sudo bash ./Anaconda3-5.1.0-Linux-x86_64.sh 进行安装。其中那些安装过程便不再赘述

2.安装好之后,我们可以创建个虚拟环境

conda create --name tensorflow-py36 python=3.6 numpy scipy h5py jupyter

我们创建了一个名为tensorflow-py36的虚拟环境,python版本是3.6

3.接着,激活虚拟环境

source activate tensorflow-py36

4.最后,安装tensorflow

conda install tensorflow-gpu

这里写图片描述

5.最后,测试tensorflow是否成功

import tensorflow as tf
import 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 range(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))

# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Jonms/article/details/80086881