如何在 Python 中使用 Tensorflow 將伊利亞特資料集拆分為訓練資料和測試資料?


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

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

pip install tensorflow

張量是 TensorFlow 中使用的資料結構。它有助於連線流圖中的邊。此流圖稱為“資料流圖”。張量只不過是多維陣列或列表。

可以使用三個主要屬性識別它們:

  • - 它說明了張量的維度。可以理解為張量的階數或已定義張量的維度數。

  • 型別 - 它說明了與張量元素關聯的資料型別。它可以是一維、二維或 n 維張量。

  • 形狀 - 它是行數和列數的總和。

我們將使用伊利亞特的資料集,其中包含 William Cowper、Edward(Derby 伯爵)和 Samuel Butler 三種翻譯作品的文字資料。該模型經過訓練,可以在給出單行文字時識別翻譯者。使用的文字檔案已進行預處理。這包括刪除文件標題和頁尾、行號和章節標題。

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

示例

以下是程式碼片段:

train_data = all_encoded_data.skip(VALIDATION_SIZE).shuffle(BUFFER_SIZE)
validation_data = all_encoded_data.take(VALIDATION_SIZE)

train_data = train_data.padded_batch(BATCH_SIZE)
validation_data = validation_data.padded_batch(BATCH_SIZE)

sample_text, sample_labels = next(iter(validation_data))
print("The text batch shape is : ", sample_text.shape)
print("The label batch shape is : ", sample_labels.shape)
print("A text example is : ", sample_text[5])
print("A label example is: ", sample_labels[5])

程式碼來源 - https://www.tensorflow.org/tutorials/load_data/text

輸出

The text batch shape is : (64, 18)
The label batch shape is : (64,)
A text example is : tf.Tensor(
[ 20 391 2 11 144 787 2 3498 16 49 2 0 0 0
   0 0 0 0], shape=(18,), dtype=int64)
A label example is: tf.Tensor(1, shape=(), dtype=int64)

解釋

  • Keras TextVectorization 層用於對向量化資料進行分組/批處理並提供填充。

  • 需要填充,因為批次中的示例需要具有相同的大小和形狀,但資料集中示例的大小可能不相同。

  • 每一行文字可能包含不同數量的單詞。

  • “tf.data.Dataset”方法有助於拆分和填充批處理資料集。

  • “validation_data”和“train_data”是批處理資料的集合。

  • 每個批次都是一對(多個示例,多個標籤),表示為陣列。

更新於:2021年1月19日

158 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告