tf.keras.preprocessing.image_dataset_from_directory()函数
时间: 2023-06-19 22:10:06 浏览: 146
`tf.keras.preprocessing.image_dataset_from_directory()`函数是一个用于从本地文件夹中加载图像数据集的实用程序函数,它可以快速地将图像数据转换为`tf.data.Dataset`对象,以便进行训练和评估。具体来说,该函数会自动将指定文件夹中的图像读入内存,并自动划分为训练集和验证集。此外,还可以通过该函数设置图像的大小、批量大小、颜色模式等参数。
下面是该函数的一般用法:
```python
tf.keras.preprocessing.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
)
```
其中,重要的参数说明如下:
- `directory`:必选参数,指定包含图像数据集的文件夹路径。
- `labels`:可选参数,指定标签的类型。默认为"inferred",表示从文件夹结构中推断标签;也可以设置为"binary"或"categorical",分别表示二元分类和多类分类。
- `label_mode`:可选参数,指定标签的数据类型。默认为"int",表示整数型标签;也可以设置为"categorical",表示one-hot编码标签。
- `class_names`:可选参数,指定各个类别的名称。默认为`None`,表示从文件夹结构中获取类别名称。
- `color_mode`:可选参数,指定图像的颜色模式。默认为"rgb",表示彩色图像;也可以设置为"grayscale",表示灰度图像。
- `batch_size`:可选参数,指定批量大小。默认为32。
- `image_size`:可选参数,指定输出图像的大小。默认为(256, 256)。
- `shuffle`:可选参数,指定是否打乱数据集。默认为True。
- `validation_split`:可选参数,指定验证集的比例。默认为None,表示不使用验证集。
- `subset`:可选参数,指定使用的子集。默认为None,表示使用所有数据集。
- `interpolation`:可选参数,指定图像的插值方式。默认为"bilinear"。
- `follow_links`:可选参数,指定是否跟踪符号链接。默认为False。
该函数返回一个`tf.data.Dataset`类型的对象,其中每个元素都是一组图像和相应的标签。可以通过`dataset.take()`方法获取指定数量的数据批次,通过`dataset.prefetch()`方法预取并缓存数据,以加速训练过程。
阅读全文