如何使用 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 格式的檔案等等。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP