從目錄中的圖像文件生成tf.data.Dataset。
用法
tf.keras.utils.image_dataset_from_directory(
directory, labels='inferred', label_mode='int',
class_names=None, color_mode='rgb', batch_size=32, image_size=(256,
256), shuffle=True, seed=None, validation_split=None, subset=None,
interpolation='bilinear', follow_links=False,
crop_to_aspect_ratio=False, **kwargs
)參數
-
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)。 - 無(無標簽)。
- 'categorical' 表示標簽被編碼為分類向量(例如,對於
-
class_names僅當 "labels" 為 "inferred" 時才有效。這是類名的顯式列表(必須與子目錄的名稱匹配)。用於控製類的順序(否則使用字母數字順序)。 -
color_mode"grayscale"、"rgb"、"rgba" 之一。默認值:"rgb"。圖像是否將轉換為具有 1、3 或 4 個通道。 -
batch_size數據批次的大小。默認值:32。如果None,數據將不會被批處理(數據集將產生單個樣本)。 -
image_size從磁盤讀取圖像後調整圖像大小的大小。默認為(256, 256)。由於管道處理必須具有相同大小的批量圖像,因此必須提供這一點。 -
shuffle是否打亂數據。默認值:真。如果設置為 False,則按字母數字順序對數據進行排序。 -
seed用於洗牌和轉換的可選隨機種子。 -
validation_split0 到 1 之間的可選浮點數,保留用於驗證的數據的一部分。 -
subset"training" 或 "validation" 之一。僅在設置validation_split時使用。 -
interpolation字符串,調整圖像大小時使用的插值方法。默認為bilinear。支持bilinear,nearest,bicubic,area,lanczos3,lanczos5,gaussian,mitchellcubic。 -
follow_links是否訪問符號鏈接指向的子目錄。默認為假。 -
crop_to_aspect_ratio如果為 True,則調整圖像大小而不會出現縱橫比失真。當原始縱橫比與目標縱橫比不同時,將裁剪輸出圖像以返回與目標縱橫比匹配的圖像(大小為image_size)中最大的可能窗口。默認情況下(crop_to_aspect_ratio=False),可能不會保留縱橫比。 -
**kwargs舊版關鍵字參數。
返回
-
A tf.data.Dataset對象。
- 如果
label_mode為 None,它會產生形狀為(batch_size, image_size[0], image_size[1], num_channels)的float32張量,對圖像進行編碼(有關num_channels的規則,請參見下文)。 - 否則,它會產生一個元組
(images, labels),其中images具有形狀(batch_size, image_size[0], image_size[1], num_channels),並且labels遵循下麵說明的格式。
- 如果
如果你的目錄結構是:
main_directory/
...class_a/
......a_image_1.jpg
......a_image_2.jpg
...class_b/
......b_image_1.jpg
......b_image_2.jpg
然後調用 image_dataset_from_directory(main_directory, labels='inferred') 將返回一個 tf.data.Dataset,它會從子目錄 class_a 和 class_b 中生成批量圖像,以及標簽 0 和 1(0 對應於 class_a,1 對應於 class_b)。
支持的圖片格式:jpeg、png、bmp、gif。動畫 gif 被截斷到第一幀。
關於標簽格式的規則:
- 如果
label_mode是int,則標簽是形狀為(batch_size,)的int32張量。 - 如果
label_mode是binary,則標簽是形狀為(batch_size, 1)的 1 和 0 的float32張量。 - 如果
label_mode是categorial,則標簽是形狀為(batch_size, num_classes)的float32張量,表示類索引的 one-hot 編碼。
關於生成圖像中通道數的規則:
- 如果
color_mode是grayscale,則圖像張量中有 1 個通道。 - 如果
color_mode是rgb,則圖像張量中有 3 個通道。 - 如果
color_mode是rgba,則圖像張量中有 4 個通道。
相關用法
- Python tf.keras.utils.img_to_array用法及代碼示例
- Python tf.keras.utils.custom_object_scope用法及代碼示例
- Python tf.keras.utils.deserialize_keras_object用法及代碼示例
- Python tf.keras.utils.array_to_img用法及代碼示例
- Python tf.keras.utils.get_file用法及代碼示例
- Python tf.keras.utils.experimental.DatasetCreator用法及代碼示例
- Python tf.keras.utils.set_random_seed用法及代碼示例
- Python tf.keras.utils.timeseries_dataset_from_array用法及代碼示例
- Python tf.keras.utils.plot_model用法及代碼示例
- Python tf.keras.utils.get_custom_objects用法及代碼示例
- Python tf.keras.utils.pack_x_y_sample_weight用法及代碼示例
- Python tf.keras.utils.get_registered_object用法及代碼示例
- Python tf.keras.utils.SidecarEvaluator用法及代碼示例
- Python tf.keras.utils.to_categorical用法及代碼示例
- Python tf.keras.utils.load_img用法及代碼示例
- Python tf.keras.utils.text_dataset_from_directory用法及代碼示例
- Python tf.keras.utils.SequenceEnqueuer用法及代碼示例
- Python tf.keras.utils.unpack_x_y_sample_weight用法及代碼示例
- Python tf.keras.applications.inception_resnet_v2.preprocess_input用法及代碼示例
- Python tf.keras.metrics.Mean.merge_state用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.utils.image_dataset_from_directory。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
