機器學習筆記 TensorFlow

2021-08-22 13:20:55 字數 1607 閱讀 2806

構建乙個簡單的 tensorflow 程式,使用該程式繪製乙個預設圖並建立乙個執行該圖的會話

tensorflow 的名稱源自張量,張量是任意維度的陣列。借助 tensorflow,您可以操控具有大量維度的張量。即便如此,在大多數情況下,您會使用以下乙個或多個低維張量:

tensorflow指令會建立、銷毀和操控張量。典型 tensorflow 程式中的大多數**行都是指令。

tensorflow(也稱為計算圖資料流圖)是一種圖資料結構。很多 tensorflow 程式由單個圖構成,但是 tensorflow 程式可以選擇建立多個圖。圖的節點是指令;圖的邊是張量。張量流經圖,在每個節點由乙個指令操控。乙個指令的輸出張量通常會變成後續指令的輸入張量。tensorflow 會實現延遲執行模型,意味著系統僅會根據相關節點的需求在需要時計算節點。

張量可以作為常量變數儲存在圖中。您可能已經猜到,常量儲存的是值不會發生更改的張量,而變數儲存的是值會發生更改的張量。不過,您可能沒有猜到的是,常量和變數都只是圖中的一種指令。常量是始終會返回同一張量值的指令。變數是會返回分配給它的任何張量的指令。

要定義常量,請使用tf.constant指令,並傳入它的值。例如:

x = tf.constant([5.2])
同樣,您可以建立如下變數:

y = tf.variable([5])
或者,您也可以先建立變數,然後再如下所示地分配乙個值(注意:您始終需要指定乙個預設值):

y = tf.variable([0])

y = y.assign([5])

定義一些常量或變數後,您可以將它們與其他指令(如tf.add)結合使用。在評估tf.add指令時,它會呼叫您的tf.constanttf.variable指令,以獲取它們的值,然後返回乙個包含這些值之和的新張量。

圖必須在 tensorflow會話中執行,會話儲存了它所執行的圖的狀態:

將 tf.session() 作為會話:

initialization = tf.global_variables_initializer()

print y.eval()

在使用tf.variable時,您必須在會話開始時呼叫tf.global_variables_initializer,以明確初始化這些變數,如上所示。

注意:會話可以將圖分發到多個機器上執行(假設程式在某個分布式計算框架上執行)。有關詳情,請參閱分布式 tensorflow。

tensorflow 程式設計本質上是乙個兩步流程:

將常量、變數和指令整合到乙個圖中。

在乙個會話中評估這些常量、變數和指令。

機器學習學習筆記

2.機器學習書籍 機器學習tom,這個是老經典,就是翻譯欠佳 prml,這個書正版的超貴,但是比較新且系統,可以通過其他途徑搞個副本。3.自己動手編碼實現2 3種經典演算法,比如svm,lr,bpnn等。4.了解spark上目前支援的機器學習方法的用途和用法,這個在日常工作中會用到。知道的多一點,方...

機器學習 學習筆記

關於梯度下降演算法的優化與 會有三種方法優化梯度下降演算法 1.共軛梯度下降法 conjugate 2.變尺度法 bfgs 3.限制變尺度法 l bfgs 這些方法的好處是 1.不用選擇學習速率 2.收斂的速度快,執行效率高 但是她們的缺點在於 實現她們的方法太複雜,所以我們就可以使用語言的內建庫函...

機器學習 學習筆記

監督學習 我們的學習演算法使用的資料是給出正確答案的資料,然後我們執行學習演算法,出更多的正確答案。理解為像深度需學習類似,利用訓練樣本訓練處學習模型,然後用測試樣本對學習到的模型進行檢測,輸出 結果。無監督學習 可以理解為對於學習演算法所使用的資料集並沒有給出正確答案,學習演算法就是要對這資料集進...