[框架]Tensorflow

Tensorflow官網:https://www.tensorflow.org/

[框架]Tensorflow_第1张图片

tensorflow基本概念

  1. Scalar(標量)表示值(單一數字)
  2. vector(向量)表示位置(1維數組)
  3. Tensor(張量)表示空間(多維數組)
  • 5個重要的類(Class)
    Variable,tf.Variable
    Tensor,tf.Tensor
    Session,tf.Session
    Graph,tf.Graph
    Operation,tf.Operation

  • 常用函數
    tf.Variable傳回一個Variable實例。
    tf.constant傳回一個constant的Tensor實例。
    tf.placeholder一個尚未存在(佔位)的Tensor實例。

Graph

TensorFlow的運算,被表示為一個data flow Graph ,data flow Graph 中的節點(Nodes)被用來表示數學運算,而邊(Edges)則用來表示在節點之間的相互聯繫,是一種對數學運算過程的可視化方法。

Session

而Session就是負責讓這個圖運算起來,Session持有並管理TensorFlow程序運行時的所有資源。

Variable、Tensor

  1. 在運行Variable之前,需要初始化Variable。在定義Variable時提供初始值,但必須調用其 初始化函數才能在Session 中實際分配此值,然後使用Variable。

  2. 因為Tensor、Variable都是class無法直接像Python變量那樣操作更新賦值的,運算都是在Session中運行的,而賦值需要使用tf.assign函數,tf.assign函數只能對Variable賦值,tf.assign更新後的值不能改變原本Variable的shape跟dtype。

  3. Variable是會顯示分配內存空間(既可以是內存,也可以是顯存),由Session管理,可以進行存儲、讀取、更改(tf.assign)等操作。Tensor,是記錄在Graph中,所以沒有單獨的內存空間;而由Variable、Tensor運算得來的值則是只會在程序運行中間出現,除非你將它賦值給python變量或賦值給Variable然後保存模型,通常Variable使用於weight、bias等需要更新的參數。

基本操作

tf.Variable
tf.constant
tf.placeholder
tf.initializers.variables
tf.global_variables
tf.Session
tf.math.add
tf.assign

[框架]Tensorflow_第2张图片

[框架]Tensorflow_第3张图片

[框架]Tensorflow_第4张图片

線性回歸

當tensorflow溢位時會得到nan導致訓練失敗,所以使用sklearn將data先進行zero mean normalization。
tf.train.GradientDescentOptimizer
sklearn.preprocessing

[框架]Tensorflow_第5张图片
[框架]Tensorflow_第6张图片
[框架]Tensorflow_第7张图片
[框架]Tensorflow_第8张图片

deep非線性回歸

這邊建立了4層的neural network,輸入(輸出)層1個NN,中間層12個NN,這邊可以看出當DNN越複雜可以擬合越複雜的函數(當然也越容易過擬合overfitting),訓練時間也越長。

[框架]Tensorflow_第9张图片
[框架]Tensorflow_第10张图片
[框架]Tensorflow_第11张图片
[框架]Tensorflow_第12张图片

尋找model最小值(或最大值)

找最大值將model乘上一個負號即可,此篇模型接續上一段deep非線性回歸,因為這是一個非凸函數,所以選取一個範圍隨機取feature,把最低點記錄下來。

[框架]Tensorflow_第13张图片
[框架]Tensorflow_第14张图片
[框架]Tensorflow_第15张图片
[框架]Tensorflow_第16张图片
這邊-2~2過擬合了,需要dropout或regularization

deep分類

Gist:
https://gist.github.com/jounjieli/95818266b18ecfa46dddb9ece0c068e3

CNN

Gist:
https://gist.github.com/jounjieli/7d31a6ddd50a1a03605534326e294e86

tensorboard

  • 架構摘要
    呼叫指令:路徑輸入FileWriter指定的路徑。


    tf.summary.FileWriter
    [框架]Tensorflow_第17张图片

    以CNN代碼為例我們呼叫tensorboard 可以得到此架構圖。
    [框架]Tensorflow_第18张图片

  • 數據摘要
    可以參考此篇:
    https://ithelp.ithome.com.tw/articles/10187814

你可能感兴趣的:([框架]Tensorflow)