TensorFlow學習筆記(1)—— 基本概念與框架

入門框架時的常見問題

學習框架的緣由?

  • 方便、易用

學習框架的哪些知識點?

  • 掌握一個項目的基本流程,就知道須要學習哪些知識點了

迅速學習框架的方法

  • 根據項目每塊流程的須要針對性的學
  • 能夠看官方的入門教程

TensorFlow快速入門思惟導圖

(圖)api

TensorFlow的高級API

TF SLIM:一個能夠定義、訓練和評估複雜模型的輕量庫(用到的時候詳細說)數組

TF Learn(tf.contrib.learn):相似於scikit-learn的接口網絡

其餘:Keras等session

TensorFlow學習要點

  • 數據類型
  • 運行機制
  • 數據的I/O
  • 模型的訓練
  • 模型的保存
  • 模型的調用

TensorFlow的基本開發流程

項目流程

數據預處理->模型訓練->模型保存->模型預測框架

  • 數據預處理:數據準備、數據清洗、特徵工程、歸一化處理
  • 神經網絡與傳統的機器學習不一樣,不須要作大量特徵工程以後喂入特徵,只須要設置好網絡結構,輸入原始數據便可完成訓練。
  • 能夠先對原始數據作歸一化的處理,避免訓練偏差。

編寫TensorFlow的兩個步驟

  1. 構建計算圖graph
  2. 使用Session去執行graph中的operation

其中涉及的基本定義

Tensor

  1. 類型化的多維數組,是圖的邊dom

  2. ???是N維的矩陣,能夠看作一種符號化的句柄,指向存儲運算結果嗎,執行以後返回的基本類型,例如numpy的數組、list等機器學習

  3. 建立方法:分佈式

    1. tf.zeros()
    2. tf.ones()
    3. tf.fill()
    4. tf.constant()
    5. tf.random_uniform()
    6. tf.random_normal()
    7. ......
  4. 三個屬性:rank、shape、data_type函數

    • Rank:指的是數據的數據的維度,與線性代數中的rank不是一個概念學習

      (圖)

      rank = 0(標量)、1(向量)、2(矩陣)、3~n(n維Tensor)

      注意rank與shape之間的關係!

    • Shape:指的是Tensor每一個維度數據的個數,能夠用Python的list/tuple表示

      Rank和Shape之間的關係:

      (圖)

    • Data_type:是指單個數據的類型。經常使用DT_FLOAT,也就是32位的浮點數。

      全部的Types以下:

      (圖)

Operation

  1. 執行計算的單元,圖的節點
  2. 是一個符號化的運算過程,是TensorFlow中的基本單元。是Graph中的計算節點,輸入和輸出均爲Tensor
  3. 建立方法:
    1. tf.add()
    2. ......

Graph

  1. 一張有邊與點的圖,其表示了須要進行計算的任務

  2. TensorFlow中使用tf.Graph表示可計算的圖,圖是由操做Operation和張量Tensor構成的,其中Operation表示圖的節點(即爲運算單元),而Tensor則表示圖的邊(即爲在Op之間流動的數據單元)

  3. 建立方法:

    • tf.Graph._ init _()(MK語法限制,下劃線無空格):建立一個新的空Graph

    • 在TF中自己存在一個默認的Graph,若直接使用則不須要再建立圖

    • 在with中調用tf.Graph().as_default()這個方法,能夠設置默認的計算圖

      (圖)

Session

  1. 稱之爲會話的上下文,用於執行圖

  2. 提供Operation執行和Tensor求值的環境

    (圖)

  3. 分佈式運算的使用,指定GPU/CPU

  4. 釋放資源

    • 調用session.close()方法

      (圖)

    • 使用with tf.Session()建立上下文(Context)來執行,當上下文退出時,資源將自動釋放

      (圖)

三大基本概念之間的關係以下:

(圖)

Tensor和Operation都是Graph的對象,Operation是圖的節點,而Tensor做爲邊,將Op鏈接起來。而Graph又必須在Session中才能執行

例子一

(圖)

  • 在Tf中定義和執行這個計算圖的操做時分開來的。
  • 建立一個完整的計算過程:
    1. 建立Tensor
    2. 添加Operation
    3. 建立Session,運行Graph
  • 這個圖裏有3個Operation,輸入不是Operation可是輸出是,由於輸出能夠執行計算,可是輸入不行。
  • Operation添加以後不會當即執行,TensorFlow將等待全部的Operation均添加到Graph中後,根據最終的輸出須要運算相應的Operation。

TensorFlow中的基本函數

Veriable

  1. 做用:保存而且更新參數,保存在內存中

(未完待續)

相關文章
相關標籤/搜索