當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.keras.utils.text_dataset_from_directory用法及代碼示例


從目錄中的文本文件生成tf.data.Dataset

用法

tf.keras.utils.text_dataset_from_directory(
    directory, labels='inferred', label_mode='int',
    class_names=None, batch_size=32, max_length=None, shuffle=True, seed=None,
    validation_split=None, subset=None, follow_links=False
)

參數

  • directory 數據所在的目錄。如果labels 是"inferred",它應該包含子目錄,每個子目錄都包含一個類的文本文件。否則,目錄結構將被忽略。
  • labels "inferred"(從目錄結構生成標簽)、None(無標簽)或與目錄中找到的文本文件數量相同大小的整數標簽列表/元組。標簽應根據文本文件路徑的字母數字順序排序(通過 Python 中的os.walk(directory) 獲得)。
  • label_mode
    - 'int':means that the labels are encoded as integers
    (e.g. for `sparse_categorical_crossentropy` loss).
    • 'categorical' 表示標簽被編碼為分類向量(例如,對於 categorical_crossentropy 損失)。
    • 'binary' 表示標簽(隻能有 2 個)被編碼為值為 0 或 1 的 float32 標量(例如,對於 binary_crossentropy )。
    • 無(無標簽)。
  • class_names 僅當 "labels" 為 "inferred" 時才有效。這是類名的顯式列表(必須與子目錄的名稱匹配)。用於控製類的順序(否則使用字母數字順序)。
  • batch_size 數據批次的大小。默認值:32。如果 None ,數據將不會被批處理(數據集將產生單個樣本)。
  • max_length 文本字符串的最大大小。超過此長度的文本將被截斷為 max_length
  • shuffle 是否打亂數據。默認值:真。如果設置為 False,則按字母數字順序對數據進行排序。
  • seed 用於洗牌和轉換的可選隨機種子。
  • validation_split 0 到 1 之間的可選浮點數,保留用於驗證的數據的一部分。
  • subset "training" 或 "validation" 之一。僅在設置 validation_split 時使用。
  • follow_links 是否訪問符號鏈接指向的子目錄。默認為假。

返回

  • A tf.data.Dataset對象。
    • 如果 label_mode 為 None,它會產生形狀為 (batch_size,)string 張量,其中包含一批文本文件的內容。
    • 否則,它會產生一個元組 (texts, labels) ,其中 texts 具有形狀 (batch_size,)labels 遵循下麵說明的格式。

如果你的目錄結構是:

main_directory/
...class_a/
......a_text_1.txt
......a_text_2.txt
...class_b/
......b_text_1.txt
......b_text_2.txt

然後調用 text_dataset_from_directory(main_directory, labels='inferred') 將返回一個 tf.data.Dataset,它會從子目錄 class_aclass_b 中生成批量文本,以及標簽 0 和 1(0 對應於 class_a,1 對應於 class_b)。

目前僅支持 .txt 文件。

關於標簽格式的規則:

  • 如果 label_modeint ,則標簽是形狀為 (batch_size,)int32 張量。
  • 如果 label_modebinary ,則標簽是形狀為 (batch_size, 1) 的 1 和 0 的 float32 張量。
  • 如果 label_modecategorial ,則標簽是形狀為 (batch_size, num_classes)float32 張量,表示類索引的 one-hot 編碼。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.utils.text_dataset_from_directory。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。