如何使用 Estimators 在 TensorFlow 中定義一個用於資料混洗的函式?


藉助 Estimators,可以定義一個用於資料混洗的函式。可以使用 ‘from_tensor_slices’ 方法建立一個儲存資料的字典。

閱讀更多: 什麼是 TensorFlow 以及 Keras 如何與 TensorFlow 協同建立神經網路?

我們將使用 Keras Sequential API,它有助於構建一個順序模型,用於處理簡單的層堆疊,其中每一層只有一個輸入張量和一個輸出張量。

包含至少一層卷積層的神經網路稱為卷積神經網路。我們可以使用卷積神經網路來構建學習模型。

我們使用 Google Colaboratory 來執行以下程式碼。Google Colab 或 Colaboratory 幫助在瀏覽器上執行 Python 程式碼,無需任何配置,並且可以免費訪問 GPU(圖形處理單元)。Colaboratory 基於 Jupyter Notebook 構建。

Estimator 是 TensorFlow 中對完整模型的高階表示。它旨在實現輕鬆擴充套件和非同步訓練。

我們將使用 tf.estimator API 訓練一個邏輯迴歸模型。該模型用作其他演算法的基線。我們使用泰坦尼克號資料集,目標是根據性別、年齡、等級等特徵預測乘客的生存情況。Estimators 使用特徵列來描述模型如何解釋原始輸入特徵。Estimator 期望一個數值輸入向量,特徵列將有助於描述模型如何轉換資料集中每個特徵。

選擇和使用正確的特徵列集對於學習有效的模型至關重要。特徵列可以是原始特徵字典中的原始輸入之一,也可以是使用在一個或多個基列上定義的轉換建立的新列。

線性估計器同時使用數值和分類特徵。特徵列適用於所有 TensorFlow Estimators。它們的目標是定義用於建模的特徵。它們還具有特徵工程功能,例如獨熱編碼、規範化和分箱。

示例

print("A function is defined to shuffle the data")
def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=32):
def input_function():
ds = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))
if shuffle:
  ds = ds.shuffle(1000)
  ds = ds.batch(batch_size).repeat(num_epochs)
 return ds
return input_function
print("The function is called")
train_input_fn = make_input_fn(dftrain, y_train)
eval_input_fn = make_input_fn(dfeval, y_eval, num_epochs=1, shuffle=False)

程式碼來源 −https://www.tensorflow.org/tutorials/estimator/linear

輸出

A function is defined to shuffle the data
The function is called

解釋

  • input_function 說明如何將資料轉換為 tf.data.Dataset。

  • 它以流式方法饋送輸入管道。

  • tf.data.Dataset 可以接收多個數據源,例如資料框、csv 格式的檔案等等。

更新於:2021年2月25日

77 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.