您在长度为2的权重列表的“ max_pooling2d_2”层上调用了“ set_weights(weights)”,但该层的权重为0。

时间:2019-10-02 14:00:23

标签: python conv-neural-network

我正在尝试通过在输出密集层中添加新层来微调模型。 目前,我的输出层有10个类,我想再添加3个类。

new_model = Sequential()

for layer in base_model.layers[:-2]:
    new_model.add(layer)

for layer in new_model.layers:
    layer.trainable = False

weights_training = base_model.layers[-2].get_weights()
new_model.layers[-2].set_weights(weights_training) 


new_model.add(Dense(units = 13, activation = 'softmax'))    


from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(rescale = 1./255,
                                   shear_range = 0.2,
                                   zoom_range = 0.2,
                                   horizontal_flip = True)

test_datagen = ImageDataGenerator(rescale = 1./255)

training_set = train_datagen.flow_from_directory('new dataset',
                                                 target_size = (100,100),
                                                 batch_size = 32,
                                                 class_mode = 'categorical')

classifier.fit_generator(training_set,
                         steps_per_epoch = 473,
                         epochs = 10)

以下程序生成错误。即。

You called `set_weights(weights)` on layer "max_pooling2d_2" with a  weight list of length 2, but the layer was expecting 0 weights. Provided weights: [array([[-0.01650696,  0.01082378,  0.0149541 , .....

我不知道该怎么解决?

0 个答案:

没有答案