Я пытаюсь применить трансферное обучение к своему ANN
для классификации изображений.Я нашел пример этого, и я бы персонализировал сеть.
Здесь есть основные блоки кода:
model = VGG19(weights='imagenet',
include_top=False,
input_shape=(224, 224, 3))
batch_size = 16
for layer in model.layers[:5]:
layer.trainable = False
x = model.output
x = Flatten()(x)
x = Dense(1024, activation="relu")(x)
x = Dense(1024, activation="relu")(x)
predictions = Dense(16, activation="sigmoid")(x)
model_final = Model(input = model.input, output = predictions)
model_final.fit_generator(
train_generator,
samples_per_epoch = nb_train_samples,
epochs = epochs,
validation_data = validation_generator,
validation_steps = nb_validation_samples,
callbacks = [checkpoint, early])
Когда я запускаю код выше, я получаю эту ошибку:
ValueError: Error when checking target: expected dense_3 to have shape (16,) but got array with shape (1,)
.
Я полагаю, что проблема связана с порядком измерений в слое dense
, я попытался транспонировать его, но получаю ту же ошибку.