Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TF2.0使用Keras ImageDataGenerator的图像生成器不工作_Python_Tensorflow_Keras - Fatal编程技术网

Python TF2.0使用Keras ImageDataGenerator的图像生成器不工作

Python TF2.0使用Keras ImageDataGenerator的图像生成器不工作,python,tensorflow,keras,Python,Tensorflow,Keras,我试图将该数据集与TF2.0以及keras ImageDataGenerator一起使用,但当我尝试调用它时,会出现错误。这就是我正在做的。我有一个数据文件夹,其中每个类别有4个文件夹。我认为这将是一个标签,就像旧的keras方法一样。有4个福尔德人有72张左右的照片 下面是我用来生成代码的代码 augment = True if augment: train_datagen = ImageDataGenerator( rescale=1./ 255, s

我试图将该数据集与TF2.0以及keras ImageDataGenerator一起使用,但当我尝试调用它时,会出现错误。这就是我正在做的。我有一个数据文件夹,其中每个类别有4个文件夹。我认为这将是一个标签,就像旧的keras方法一样。有4个福尔德人有72张左右的照片

下面是我用来生成代码的代码

augment = True
if augment:
    train_datagen = ImageDataGenerator(
        rescale=1./ 255,
        shear_range=0,
        rotation_range=20,
        zoom_range=0.15,
        width_shift_range=0.2,
        height_shift_range=0.2,
        horizontal_flip=True,
        fill_mode='nearest')  # set validation split
else:
    train_datagen = ImageDataGenerator(
        rescale=1./ 255,
        horizontal_flip=True,
        fill_mode='nearest')  # set validation split

images, labels = next(train_datagen.flow_from_directory(DATA_PATH))
print(images.dtype, images.shape)
print(labels.dtype, labels.shape)
input_shape = images.shape[1:]
print("InputShape:", input_shape)
img_shape = (input_shape[0], input_shape[1])

ds = tf.data.Dataset.from_generator(train_datagen.flow_from_directory,
             args=[DATA_PATH], output_types=(tf.float32, tf.float32))
这就产生了:

找到了324张属于4类的图像。
浮动32(32、256、256、3)
浮动32(32,4)
InputShape:(256、256、3)

DS:
tf.data.Dataset
与Keras
ImageDataGenerator
一起使用有点棘手。您可以改为使用Keras内置方法

为此,您可以跳过此部分

# ds = tf.data.Dataset.from_generator(train_datagen.flow_from_directory,
#             args=[DATA_PATH], output_types=(tf.float32, tf.float32))
并使用Keras生成器:

train_generator = train_datagen.flow_from_directory(
        DATA_PATH,
        target_size=(150, 150), # or other parameters you need
        batch_size=32,
        class_mode='binary')
最后,可以通过前面提到的
fit\u generator
调用培训:

model.fit_generator(
        train_generator,
        steps_per_epoch=2000,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800)
关于这个话题的文章非常好,我建议你去看看。
干杯

是的,我知道我将不得不重写这一点,因为你可以使用keras的图像生成器,但它非常挑剔。非常感谢。