tensorflow 加载本地图片数据集
时间: 2023-07-06 14:17:34 浏览: 222
在 TensorFlow 中,可以使用 `tf.keras.preprocessing.image_dataset_from_directory` 方法来加载本地图片数据集。这个方法可以从一个目录中读取图片,并将其转换成 TensorFlow 中的数据集。
以下是一个示例代码,演示如何使用 `image_dataset_from_directory` 方法加载本地图片数据集:
``` python
import tensorflow as tf
# 指定图片目录和 batch_size
image_dir = "/path/to/image/directory/"
batch_size = 32
# 使用 image_dataset_from_directory 方法加载数据集
train_dataset = tf.keras.preprocessing.image_dataset_from_directory(
image_dir,
validation_split=0.2, # 拆分训练集和验证集的比例
subset="training", # 使用训练集子集
seed=123, # 随机种子,用于拆分数据集
image_size=(224, 224),# 图片大小
batch_size=batch_size # 批量大小
)
val_dataset = tf.keras.preprocessing.image_dataset_from_directory(
image_dir,
validation_split=0.2, # 拆分训练集和验证集的比例
subset="validation", # 使用验证集子集
seed=123, # 随机种子,用于拆分数据集
image_size=(224, 224),# 图片大小
batch_size=batch_size # 批量大小
)
```
在这个示例中,我们指定了图片目录 `image_dir` 和批量大小 `batch_size`,然后使用 `image_dataset_from_directory` 方法加载数据集。这个方法会自动将图片转换成 TensorFlow 中的数据集,并且可以将数据集拆分成训练集和验证集两个子集。
如果需要对图片进行数据增强,可以使用 `tf.keras.preprocessing.image.ImageDataGenerator` 类来设置数据增强参数,并将其传递给 `image_dataset_from_directory` 方法。例如:
``` python
import tensorflow as tf
# 设置数据增强参数
data_augmentation = tf.keras.Sequential([
tf.keras.layers.experimental.preprocessing.RandomFlip('horizontal'),
tf.keras.layers.experimental.preprocessing.RandomRotation(0.2),
])
# 使用 image_dataset_from_directory 方法加载数据集
train_dataset = tf.keras.preprocessing.image_dataset_from_directory(
image_dir,
validation_split=0.2, # 拆分训练集和验证集的比例
subset="training", # 使用训练集子集
seed=123, # 随机种子,用于拆分数据集
image_size=(224, 224), # 图片大小
batch_size=batch_size, # 批量大小
label_mode='categorical', # 标签类型
preprocessing_function=data_augmentation, # 数据增强
)
```
在这个示例中,我们使用 `Sequential` 类创建了一个数据增强模型,并将其传递给 `image_dataset_from_directory` 方法的 `preprocessing_function` 参数。这样,在加载数据集时,会自动对图片进行数据增强。
阅读全文