首页 > 解决方案 > 使用 `keras.utils.Sequence` 作为输入时,不支持 `y` 参数

问题描述

我正在使用监督学习。我没有对任何我试图查看是否可以通过提供高分辨率输出来改变输入分辨率的东西进行分类。我有低分辨率输入和高分辨率输出。输出也是图像而不是类名。输出是否应该作为列表给出。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import tensorflow as tf
from keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D
from tensorflow.keras.layers import Input, Dropout, Flatten, Dense
from keras.layers import Convolution2D
from keras.preprocessing.image import ImageDataGenerator
from keras.layers import UpSampling2D
from keras.models import Model
from tensorflow.keras.layers import BatchNormalization
test_datagen = ImageDataGenerator(rescale=0./255)

train_datagen = ImageDataGenerator(rescale=0./255)
train_out_datagen = ImageDataGenerator(rescale=0./255)
validation_datagen = ImageDataGenerator(rescale=0./255)

train_indir = r"D:\\UAV\\Train\\Input"
validation_indir = r"D:\\UAV\\Train\\validation"
output_outdir = r"D:\\UAV\\Train\\Output"

input_gen = train_datagen.flow_from_directory(
        train_indir,
        target_size = (3402,3401),#(3402,3401),
        batch_size =32,
        color_mode='rgb',
        class_mode='input') 
valid_gen = validation_datagen.flow_from_directory(
            validation_indir,
            target_size = (3402,3401),  #(3402,3401),
            batch_size =32,
            color_mode='rgb',
            class_mode = 'input')

output_gen = train_out_datagen.flow_from_directory(
        output_outdir,
        target_size = (3402,3401),#(3402,3401),
        batch_size =32,
        color_mode='rgb',
        class_mode='input')
base_model = tf.keras.applications.ResNet50(
    include_top=False,
    weights="imagenet",
    input_shape=(3402,3401,3),
    pooling=None,  
)
for layer in base_model.layers[:]:
    layer.trainable = False
model = Sequential()
model.add(base_model)
model.add(Convolution2D(3,9,activation='relu',padding='same'))
model.add(UpSampling2D())
model.add(UpSampling2D())
model.add(BatchNormalization())
model.add(Convolution2D(3,9,activation='relu',padding='same'))
model.build((None, 3402, 3401, 3))
model.summary()

model.compile(optimizer="adam", loss='mean_squared_error', metrics=['mean_squared_error'])
model.fit(input_gen,output_gen,validation_data = valid_gen,batch_size =32,epochs=100)

标签: pythontensorflowkeras

解决方案


推荐阅读