如何使用 Python 和 TensorFlow 訓練線性模型?


TensorFlow 是 Google 提供的一個機器學習框架。它是一個開源框架,與 Python 結合使用,可以實現演算法、深度學習應用程式等等。它用於研究和生產目的。

可以使用以下程式碼行在 Windows 上安裝 'tensorflow' 包:

pip install tensorflow

張量 (Tensor) 是 TensorFlow 中使用的一種資料結構。它有助於連線資料流圖中的邊。這個資料流圖被稱為“資料流圖”。張量只不過是多維陣列或列表。它們可以使用三個主要屬性來標識:

秩 (Rank):它表示張量的維度。可以理解為張量的階數或已定義張量的維度數。

型別 (Type):它表示與張量元素關聯的資料型別。它可以是一維、二維或 n 維張量。

形狀 (Shape):它一起表示行數和列數。

我們將使用 Jupyter Notebook 來執行程式碼。可以使用 'pip install tensorflow' 在 Jupyter Notebook 上安裝 TensorFlow。

以下是程式碼:

示例

import tensorflow as tf

A = tf.get_variable("A", initializer=tf.constant([0.1]))
b = tf.get_variable("b", initializer=tf.constant([0.0]))

x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)

my_model = A * x + b

lossVal = tf.reduce_sum(tf.square(my_model − y))

my_optimizer = tf.train.GradientDescentOptimizer(0.01)
train = my_optimizer.minimize(lossVal)

x_train = [1.0, 2.5, 3.8, 4.9]
y_train = [1.7, 3.0, 6.6, 6.8]

with tf.Session() as sess:
   sess.run(tf.global_variables_initializer())
   for i in range(1000):
      sess.run(train, {x:x_train, y:y_train})
      if i%100==0:
         l_cost = sess.run(lossVal, {x:x_train, y:y_train})
         print(f"i: {i} cost: {l_cost}")
   l_A, l_b, l_cost = sess.run([A, b, lossVal], {x:x_train, y:y_train})
   print(f"A: {l_A} b: {l_b} cost: {l_cost}")

輸出

i: 0 cost: 1.7808341979980469
i: 100 cost: 1.6947696208953857
i: 200 cost: 1.691591501235962
i: 300 cost: 1.6913959980010986
i: 400 cost: 1.6913844347000122
i: 500 cost: 1.6913840770721436
i: 600 cost: 1.6913843154907227
i: 700 cost: 1.691383719444275
i: 800 cost: 1.6913838386535645
i: 900 cost: 1.6913845539093018
A: [1.4599526] b: [0.07214472] cost: 1.6913845539093018

解釋

  • 匯入所需的包併為其提供別名,以便於使用。

  • 定義一個名為 'my_model' 的變數,其中儲存線性模型的通用格式。

  • 使用 'GradientDescentOptimizer' 訓練此線性模型。

  • 訓練過程旨在使損失最小化,這透過 'minimize' 方法來確保。

  • 建立兩個列表來儲存訓練資料。

  • 對資料進行訓練,並在控制檯上顯示預測值。

更新於:2021年1月19日

112 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告