python人工智能——深度学习——TensorFlow基本介绍
Tensorflow基礎
1、深度學習介紹
深度學習,如深度神經網絡、卷積神經網絡和遞歸神經網絡已被應用
計算機視覺、語音識別、自然語言處理、音頻識別與生物信息學等領域
并獲取了極好的效果。
2、認識Tensorflow
深度學習框架
Tensorflow特點
1、真正的可移植性
引入各種計算設備的支持包括CPU/GPU/TPU,以及能夠很好地運行在移動端,
如安卓設備、ios、樹莓派等等
2、多語言支持
Tensorflow 有一個合理的c++使用界面,也有一個易用的python使用界面來構建和
執行你的graphs,你可以直接寫python/c++程序。
3、高度的靈活性與效率
TensorFlow是一個采用數據流圖(data flow graphs),用于數值計算的開源軟件庫
能夠靈活進行組裝圖,執行圖。隨著開發的進展,Tensorflow的效率不算在提高
4、支持
TensorFlow 由谷歌提供支持,谷歌投入了大量精力開發 TensorFlow,它希望
TensorFlow 成為機器學習研究人員和開發人員的通用語言
3、Tensorflow的安裝
開啟GPU支持(不推薦)
如果系統沒有NVIDIA?GPU,請構建并安裝CPU版本
Ubuntu:
安裝CUDA和cuDNNMac:
安裝CUDA和cuDNN安裝中如果遇到什么問題,可以參考:
安裝 TensorFlow
https://files.pythonhosted.org/packages/d4/https://www.tensorflow.org/install#tensorflow
TensorFlow和PaddlePaddle不兼容問題(serialized_options)
https://blog.csdn.net/weixin_43336281/article/details/87374007
4、Tensorflow初體驗
加法運算
Tensorflow加法運算
5、Tensorflow進階
1、圖
圖默認已經注冊,一組表示 tf.Operation計算單位的對象和tf.Tensor
表示操作之間流動的數據單元的對象
獲取調用:
tf.get_default_graph() op、sess或者tensor 的graph屬性圖的創建
tf.Graph()
使用新創建的圖
g = tf.Graph() with g.as_default(): a = tf.constant(1.0) assert c.graph is g2、會話
tf.Session()
運行TensorFlow操作圖的類,使用默認注冊的圖(可以指定運行圖)
會話資源
會話可能擁有很多資源,如 tf.Variable,tf.QueueBase
和tf.ReaderBase,會話結束后需要進行資源釋放
sess = tf.Session() sess.run(…) sess.close()
使用上下文管理器
with tf.Session() as sess:
sess.run(…)
config=tf.ConfigProto(log_device_placement=True)
交互式:tf.InteractiveSession()
會話的run()方法
run(fetches, feed_dict=None,graph=None)
運行ops和計算tensor
嵌套列表,元組,
namedtuple,dict或OrderedDict(重載的運算符也能運行)
feed_dict 允許調用者覆蓋圖中指定張量的值,提供給
placeholder使用
返回值異常
RuntimeError:如果它Session處于無效狀態(例如已關閉)。 TypeError:如果fetches或feed_dict鍵是不合適的類型。 ValueError:如果fetches或feed_dict鍵無效或引用 Tensor不存在。3、張量
1、張量的階和數據類型
Tensorflow基本的數據格式
一個類型化的N維度數組(tf.Tensor)
三部分,名字,形狀,數據類型
張量的階
張量的數據類型
張量屬性
graph 張量所屬的默認圖
op 張量的操作名
name 張量的字符串描述
shape 張量形狀
張量的動態形狀與靜態形狀
TensorFlow中,張量具有靜態形狀和動態形狀
靜態形狀:
創建一個張量或者由操作推導出一個張量時,初始狀態的形狀
動態形狀:
一種描述原始張量在執行過程中的一種形狀
要點
1、轉換靜態形狀的時候,1-D到1-D,2-D到2-D,不能跨階數改變形狀
2、 對于已經固定或者設置靜態形狀的張量/變量,不能再次設置靜態形狀
3、tf.reshape()動態創建新張量時,元素個數不能不匹配
2、張量操作
張量操作-生成張量
正態分布
概率密度函數為正態分布的期望值μ決定了其位置,其標準差σ
決定了分布的幅度。當μ = 0,σ = 1時的正態分布是標準正態分布。
張量操作-張量變換
提供給Tensor運算的數學函數
算術運算符
基本數學函數
矩陣運算
減少維度的運算(求均值)
序列運算
4、變量
1、變量的創建
2、變量的初始化
3、變量的作用域
變量也是一種OP,是一種特殊的張量,能夠進行存儲持久化,它的
值就是張量。
變量的創建
tf.Variable(initial_value=None,name=None)
創建一個帶值initial_value的新變量assign(value) 為變量分配一個新值 返回新值 eval(session=None) 計算并返回此變量的值name屬性表示變量名字變量的初始化
tf.global_variables_initializer()
添加一個初始化所有變量的op
在會話中開啟
可視化學習Tensorboard
數據序列化-events文件
TensorBoard 通過讀取 TensorFlow 的事件文件來運行
tf.summary.FileWriter(’/tmp/tensorflow/summary/test/’, graph=
default_graph)
返回filewriter,寫入事件文件到指定目錄(最好用絕對路徑),以提供給tensorboard使用
開啟
tensorboard --logdir=/tmp/tensorflow/summary/test/
一般瀏覽器打開為127.0.0.1:6006
注:修改程序后,再保存一遍會有新的事件文件,打開默認為最新
增加變量顯示
目的:觀察模型的參數、損失值等變量值的變化。
1、收集變量
2、合并變量寫入事件文件
merged = tf.summary.merge_all() 運行合并:summary = sess.run(merged),每次迭代都需運行 添加:FileWriter.add_summary(summary,i),i表示第幾次的值5、模型保存和加載
tf.train.Saver(var_list=None,max_to_keep=5)
var_list:指定將要保存和還原的變量。它可以作為一個 dict或一個列表傳遞. max_to_keep:指示要保留的最近檢查點文件的最大數量。 創建新文件時,會刪除較舊的文件。如果無或0,則保留所有 檢查點文件。默認為5(即保留最新的5個檢查點文件。)6、自定義命令行參數
自定義命令行參數
1.
2、
tf.app.flags.,在flags有一個FLAGS標志,它在程序中可以調用到我們
前面具體定義的flag_name
3、
通過tf.app.run()啟動main(argv)函數
總結
以上是生活随笔為你收集整理的python人工智能——深度学习——TensorFlow基本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python人工智能——机器学习——模型
- 下一篇: python人工智能——深度学习——Te