本筆記是基於 《TensorFlow 實踐與智能系統》而寫
注:本書的源碼地址 https://github.com/backstopmedia/tensorflowbook 點擊可下載 。
目錄
1.TensorFlow 的安裝
由於此書沒有基於windows 的安裝教程,因此在百度上找了下安裝教程。如下:
注:以下安裝方法是參照 簡書上的一篇文章而來。
TenssorFlow 是什麼?
TenssorFlow 中文社區是這樣介紹的:
TensorFlow™ 是一個採用數據流圖(data flow graphs),用於數值計算的開源軟件庫。節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯繫的多維數據數組,即張量(tensor)。它靈活的架構讓你可以在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU),服務器,移動設備等等。TensorFlow 最初由Google大腦小組(隸屬於Google機器智能研究機構)的研究員和工程師們開發出來,用於機器學習和深度神經網絡方面的研究,但這個系統的通用性使其也可廣泛用於其他計算領域。
這兒只是介紹一下,在windows 10 下使用Anaconda3安裝 TenssorFlow的經驗 ;
TenssorFlow現在還不支持Python 3.7;解決辦法就是創建Python 3.6的環境或者重新安裝Python 3.6了。
方法 1: 創建基於python 3.6 的tensorflow環境
> conda create --name tensorflow python=3.6
> conda activate tensorflow
> conda install tensorflow
> python3
>>> import tensorflow as tf #不報錯就表示安裝成功
>>> exit()
> conda deactivate
> conda remove --name tensorflow --all
方法 2: 創建python36環境,安裝tensorflow
> conda create --name python36 python==3.6.7
> conda activate python36
> conda install tensorflow
> python3
>>> import tensorflow as tf #不報錯就表示安裝成功
>>> exit()
> conda deactivate
方法 3: Anaconda Python 3.7換成3.6
> conda install python=3.6.7
> conda install tensorflow
> python3
>>> import tensorflow as tf #不報錯就表示安裝成功
>>> exit()
2.構建第一個TensorFlow數據流圖(附含解決tensorboard無法啓動和顯示問題:No dashboards are active for the current data set.orNo graph definition files were found. )
1)注意點:
這兩個函數 tf.train.SummaryWriter() tf.summary.FileWriter() 已被替換爲 tf.compat.v1.summary.FileWriter()
2)源碼1及結果
import tensorflow as tf
# from tensorboard import SummaryWriter
a = tf.constant(5, name="input_a")
b = tf.constant(3, name="input_b")
c = tf.multiply(a, b, name="multi_c")
d = tf.add(a, b, name="add_d" )
e = tf.add(c, d, name="add_e")
# print(a.name, b, c, d, e)
#以上代碼並不會有實質性結果的輸出 如果需要輸出結果需要添加一下代碼
sess = tf.compat.v1.Session()
print(sess.run(c))
print(sess.run(e))
# writer = tf.train.SummaryWriter('./my_graph', sess.graph)
# writer = tf.summary.FileWriter('./my_graph', sess.graph)
writer = tf.compat.v1.summary.FileWriter('./my_graph', sess.graph)
# writer = tf.compat.v1.summary.FileWriter('E:/logfile/test', sess.graph )
# tf.get_default_graph()
writer.close()
sess.close()
print(writer)
print('end')
3)使用TensorBoard 生成的流圖
在Terminal 下輸入命令 : tensorboard --logdir=my_graph 打印如下信息 (注意下生成的my_graph的路徑)
如果本步驟有問題請按照如下鏈接嘗試解決:https://blog.csdn.net/sinat_20729643/article/details/78683677
4)簡化流圖
3.Tensor (張量)的形狀
1)測試代碼及輸出結果
""" 獲取張量的形狀 """
import tensorflow as tf
mystery_tensor = ([1, 2], [3, 4])
# mystery_tensor = (3, 2, 4)
shape = tf.shape(mystery_tensor, name="mystery_tensor")
print(shape)
4.TensorFlow 的 Operation
1)運算符
2)相關代碼及結果
"""tensorflow 的 opreation"""
import tensorflow as tf
import numpy as np
import os
# 設置警告級別
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
a = np.array([2, 3], dtype=np.int32)
b = np.array([4, 5], dtype=np.int32)
c = tf.add(a, b, name="my_add_op")
# c = a+b
print(c)
sess = tf.Session()
# sess = tf.compat.v1.Session()
print(sess.run(c))
writer = tf.compat.v1.summary.FileWriter('./my_graph', sess.graph)
writer.close()
sess.close()
print(writer)
5. TensorFlow 的 Graph 對象
6.TensorFlow Session
7.利用佔位節點添加輸入
"""利用佔位節點添加輸入"""
import tensorflow as tf
import numpy as np
# 創建一個長度爲2 數據類型爲 int32 的佔位向量
a = tf.placeholder(tf.int32, shape=[2], name="my_input")
#將佔位向量視爲其他任意的 Tensor 對象, 加以使用
b = tf.reduce_prod(a, name="prod_b")
c = tf.reduce_sum(a, name="sum_c")
#完成數據流圖的定義
d = tf.add(b, c, name="add_d")
#定義一個TensorFlow Session 對象
sess = tf.Session()
# 創建一個將傳給 feed_dict 參數的字典
# 鍵: ‘a' 指向佔位符輸出 Tensor 對象的句柄
# 值: 一個值爲 [5, 3]、類型爲int32 的向量
input_dict = {a: np.array([5, 3], dtype=np.int32)}
print(sess.run(d, feed_dict=input_dict))
8.Variable 對象
1)創建variable
2)variable對象的初始化
3)variable對象的修改
4)trainable參數