什么是TensorFlow
首先解釋下什么是tensorflow,還是直接看下百度百科里面的說明:
TensorFlow是谷歌基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng)彼妻,其命名來源于本身的運(yùn)行原理赞庶。Tensor(張量)意味著N維數(shù)組,F(xiàn)low(流)意味著基于數(shù)據(jù)流圖的計算澳骤,TensorFlow為張量從流圖的一端流動到另一端計算過程。TensorFlow是將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理過程的系統(tǒng)澜薄。
TensorFlow可被用于語音識別或圖像識別等多項(xiàng)機(jī)器深度學(xué)習(xí)領(lǐng)域为肮,對2011年開發(fā)的深度學(xué)習(xí)基礎(chǔ)架構(gòu)DistBelief進(jìn)行了各方面的改進(jìn),它可在小到一部智能手機(jī)肤京、大到數(shù)千臺數(shù)據(jù)中心服務(wù)器的各種設(shè)備上運(yùn)行颊艳。TensorFlow將完全開源,任何人都可以用忘分。
TensorFlow在Centos下安裝
python安裝
現(xiàn)在linux下面一般都安裝了python棋枕,不過都是2.x版本的,雖然也可以用,最好還是安裝3.x的窥浪,下面說明3.x的安裝方法假颇。
先安裝python3依賴
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
安裝python3
采用源碼編譯安裝
1 wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
2 tar xvf Python-3.5.0.tgz
3 cd Python-3.5.0
4 ./configure --prefix=/home/aus/python3 --enable-shared
5 make && make install
6 ln -s /usr/local/bin/python3.5 /usr/bin/python
7 ln –s /usr/local/bin/python3.5 python
安裝TensorFlow
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
注意: cp35是適應(yīng)python3.5版本坦冠,如果是python2.x記得更換下: tensorflow-0.6.0-cp27-none-linux_x86_64.whl (python2.7)
測試TensorFlow
本來以為很簡單的就安裝好了,誰知道import時候報錯:
1)GLIBCXX版本不對報錯信息
ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /usr/local/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so)
原因:
libstdc++.so.6的版本有點(diǎn)低不包含tensorflow運(yùn)行需要的GLIBCXX_3.4.19庫;
可以通過stings /usr/lib64/libstdc++.so.6|grep GLIBCXX查看現(xiàn)在支持的版本硼一。
上網(wǎng)找了下般贼,最后只能選擇源碼編譯安裝哼蛆,主要參考:
這篇文章以及[另一篇文章] (http://blog.csdn.net/kuaile123/article/details/20848123)
重新連接:
ln -s /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
2)GLIBC版本不對錯誤
Im
portError: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by /usr/local/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so)
下載一個 glibc2.19版本的源碼,編譯安裝叠洗。
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
參考文章
測試代碼1:
import tensorflow as tf
hello = tf.constant('Hello,TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a + b))
測試代碼2:
cd /usr/local/lib/python3.5/site-packages/tensorflow/examples/tutorials/
import mnist.input_data as inputdata
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
import tensorflow as tf
sess = tf.InteractiveSession()
x = tf.placeholder("float", [None, 784])
y_= tf.placeholder("float",shape=[None,10])
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x,W)+b)
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
for i in range(1000):
batch = mnist.train.next_batch(50)
train_step.run(feed_dict={x: batch[0], y_: batch[1]})
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print (accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels}))