我正在尝试使用Keras模型API来修改已训练的模型,以便在运行时进行微调:
一个非常基本的模型:
inputs = Input((x_train.shape[1:]))
x = BatchNormalization(axis=1)(inputs)
x = Flatten()(x)
outputs = Dense(10, activation='softmax')(x)
model1 = Model(inputs, outputs)
model1.compile(optimizer=Adam(lr=1e-5), loss='categorical_crossentropy', metrics=['categorical_accuracy'])
它的架构是
InputLayer -> BatchNormalization -> Flatten -> Dense
在我对其进行一些训练批次后,我想在Flatten层和输出之间添加一些额外的Dense层:
x = Dense(32,activation='relu')(model1.layers[-2].output)
outputs = model1.layers[-1](x)
然而,当我运行它时,我得到了这个:
ValueError: Input 0 is incompatible with layer dense_1: expected axis -1 of input
shape to have value 784 but got shape (None, 32)
发生了什么事情,我如何/是否可以向已经训练好的模型添加层?
input_shape =(None,None,1)
,除了获得更好的结果外,您还将能够做您想要的事情。 - Daniel Möller