从目录中的文本文件生成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
)。 - 无(无标签)。
- 'categorical' 表示标签被编码为分类向量(例如,对于
-
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_a
和 class_b
中生成批量文本,以及标签 0 和 1(0 对应于 class_a
,1 对应于 class_b
)。
目前仅支持 .txt
文件。
关于标签格式的规则:
- 如果
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 编码。
相关用法
- Python tf.keras.utils.timeseries_dataset_from_array用法及代码示例
- Python tf.keras.utils.to_categorical用法及代码示例
- 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.plot_model用法及代码示例
- Python tf.keras.utils.get_custom_objects用法及代码示例
- Python tf.keras.utils.pack_x_y_sample_weight用法及代码示例
- Python tf.keras.utils.img_to_array用法及代码示例
- Python tf.keras.utils.image_dataset_from_directory用法及代码示例
- Python tf.keras.utils.get_registered_object用法及代码示例
- Python tf.keras.utils.SidecarEvaluator用法及代码示例
- Python tf.keras.utils.load_img用法及代码示例
- 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.text_dataset_from_directory。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。