如何在 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”是批處理資料的集合。
每個批次都是一對(多個示例,多個標籤),表示為陣列。