我已经在带有张量流后端的 keras 中设置了一个带有 K 折交叉验证的自定义 CNN。在开始训练之前会调用 model.compile() 函数,但调用 model.fit_generator() 函数会导致运行时错误:“您必须先编译模型,然后才能使用它。”我使用 ImageDataGenerator 进行数据增强并使用 fit_generator 函数进行训练。到目前为止,我发现的唯一相关问题与 tensorflow急切执行功能有关,该功能似乎未在 Keras中启用。这是代码:模型定义:model = Sequential()model.add(Conv2D(24, (5, 5), strides=(1, 1), padding="valid", data_format="channels_last", activation='relu', use_bias=True, ))#out=96model.add(Dropout(.25))model.add(MaxPooling2D(pool_size=(2, 2)))#out=48model.add(Conv2D(32, (3, 3), strides=(1, 1), padding="valid", data_format="channels_last", activation='relu', use_bias=True, ))#out=46model.add(MaxPooling2D(pool_size=(2, 2)))#out=23model.add(Conv2D(48, (3, 3), strides=(1, 1), padding="valid", data_format="channels_last", activation='relu', use_bias=True, ))#out=21model.add(MaxPooling2D(pool_size=(2, 2)))#padding???model.add(Flatten())model.add(Dense(3, activation='softmax'))...这里将是数据初始化...设置 ImageGenerator:datagen_training = ImageDataGenerator( rotation_range = 20, width_shift_range = 0.3, height_shift_range=0.3, zoom_range=0.2, fill_mode = "constant", cval = 0, vertical_flip = True, validation_split = 0.2 )datagen_training.fit(data)
1 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
模型没有编译,因为它没有被构建,它没有被构建,因为input_shape它没有在第一层中指定。我不确定你的数据的输入形状,但是你的第一层这样的东西会让模型编译:
model = Sequential()
model.add(Conv2D(24, (5, 5),
strides=(1, 1),
padding="valid",
data_format="channels_last",
activation='relu',
use_bias=True,
input_shape=(100,100,1)
))#out=96
添加回答
举报
0/150
提交
取消