Tensorflow 入門一 (安裝配置,會話控制,變數常量,傳入值)
阿新 • • 發佈:2019-02-04
Tensorflow:
TensorFlow是谷歌基於DistBelief進行研發的第二代人工智慧學習系統,主要是深度神經網路模型。 也是一時興起開始學習這玩意,走到哪,部落格寫到哪裡,全當記錄。主要參考資料一方面是0.8.0版極客學院翻譯版資料,另一方面是油管上週莫煩的視訊資料(附上地址:https://www.youtube.com/user/MorvanZhou/featured)
安裝配置:
因為不支援Windows系統,只能在Mac或Linux上使用,因此Windows系統可以裝個VM虛擬機器。 官網是提供了pip, Docker, Virtualenv, Anaconda 等多種方法安裝TensorFlow,但是我只走了pip這一條路。 本人使用的是Ubuntu 64位版本,沒有多少坑,直接跟著官網走就行(比以前搞得Xamarin,RN之類的要順暢不知道多少倍),順心不少。 0.8.0版本:# Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev
python3.4版本:# Ubuntu/Linux 64-bit
$ sudo apt-get install python3-pip python3-dev
安裝TensorFlow
python2.7版本:
python3.4版本:# Ubuntu/Linux 64-bit, CPU only, Python 2.7: $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
# Ubuntu/Linux 64-bit, CPU only, Python 3.4:
$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl
0.11.0rc1版本: 安裝pip和0.8.0版本一樣,就不贅述了。 安裝TensorFlow python2.7
python3.4# Ubuntu/Linux 64-bit, CPU only, Python 2.7 $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc1-cp27-none-linux_x86_64.whl
# Ubuntu/Linux 64-bit, CPU only, Python 3.4
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc1-cp34-cp34m-linux_x86_64.whl
python3.5
# Ubuntu/Linux 64-bit, CPU only, Python 3.5
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc1-cp35-cp35m-linux_x86_64.whl
最後統一呼叫
# Python 2
$ sudo pip install --upgrade $TF_BINARY_URL
# Python 3
$ sudo pip3 install --upgrade $TF_BINARY_URL
注意:
1.以上皆為CPU only版本,TensorFlow可以使用GPU啟用版本為其運算加速,但我使用了VM虛擬機器,又是GTX1070最新顯示卡,鬼知道會出什麼岔子,因此沒有用。 2.極客學院只針對了0.8.0版本進行翻譯,沒有之後版本的。 3.Ubuntu本身自帶python3.5.2和2.7版本,不需要另行安裝。 4.3Python3.5版本的TensorFlow至少0.9.0版本。會話控制 Session:
TensorFlow中的Session主要用於執行命令,不管你前面做了什麼,比如使用add(),mul()方法,相加也好,相乘也好,不執行Session().run()就不會執行相應的操作。 例子如下:import tensorflow as tf
matrix1 = tf.constant([[3,3]]) #建立一行兩列矩陣
matrix2 = tf.constant([[2],[2]]) #建立兩行一列矩陣
product = tf.matmul(matrix1,matrix2) #矩陣乘法
#方法1
sess = tf.Session()
result = sess.run(product) #啟用Session().run()才算執行
print(result)
sess.close()
#方法2
with tf.Session() as sess:
result2 = sess.run(product)
print(result2)
方法1是常規的Session使用方法,方法2中可以看出,Session還支援Python中的上下文管理協議with。
變數 Variable 常量 constant:
TensorFlow中建立變數,雖不需要指出變數型別,但是要在建立時表明這個是變數。變數建立方法Variable(),常量建立方法constant()。 例子如下:import tensorflow as tf
state = tf.Variable(0,name='counter') #初始值0,名字counter
print(state.name)
one = tf.constant(1) #常量
new_value = tf.add(state, one)
update = tf.assign(state, new_value) #new_value引數替換state
init = tf.initialize_all_variables() #初始化變數,變數才會起作用
with tf.Session() as sess:
sess.run(init)
for i in range(3): #迴圈執行sess.run()三次,累加三次
sess.run(update)
print(sess.run(state)) #不能直接輸出state,必須使用sess.run(state)
傳入值 placeholder:
可以從外界傳入數值的方法,用placeholder保留一個數據的位置,之後可以在Session().run()的時候進行賦值。 例子如下:import tensorflow as tf
#placeholder類似input
input1 = tf.placeholder(tf.float32) #需要保證placeholer的型別
input2 = tf.placeholder(tf.float32)
output = tf.mul(input1,input2) #乘法運算
with tf.Session() as sess:
print(sess.run(output,feed_dict={input1:[7.],input2:p[2.]})) #以feed_dict形式傳入數值