【问题标题】:How can I preprocess a tf.data.Dataset using a provided preprocess_input function that expects a tf.Tensor?如何使用提供的需要 tf.Tensor 的 preprocess_input 函数预处理 tf.data.Dataset?
【发布时间】:2021-12-31 01:06:23
【问题描述】:
【问题讨论】:
标签:
python
tensorflow
keras
tf.keras
【解决方案1】:
您可以使用tf.data.Dataset 的map 函数将preprocess_input 函数应用于每批图像:
import tensorflow as tf
import pathlib
import matplotlib.pyplot as plt
dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
data_dir = tf.keras.utils.get_file('flower_photos', origin=dataset_url, untar=True)
data_dir = pathlib.Path(data_dir)
batch_size = 32
train_ds = tf.keras.utils.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="training",
seed=123,
image_size=(180, 180),
batch_size=batch_size)
def display(ds):
images, _ = next(iter(ds.take(1)))
image = images[0].numpy()
image /= 255.0
plt.imshow(image)
def preprocess(images, labels):
return tf.keras.applications.resnet50.preprocess_input(images), labels
train_ds = train_ds.map(preprocess)
display(train_ds)