Я пытаюсь создать модель ResNet50 для проблемы регрессии, с выходным значением в диапазоне от -1 до 1.
Я пропустил аргумент классов, и на этапе предварительной обработки я изменил размеры своих изображений до 224 224, 3.
Я пытаюсь создать модель с
def create_resnet(load_pretrained=False):
if load_pretrained:
weights = 'imagenet'
else:
weights = None
# Get base model
base_model = ResNet50(weights=weights)
optimizer = Adam(lr=1e-3)
base_model.compile(loss='mse', optimizer=optimizer)
return base_model
, а затем создать модель, распечатать сводку и использовать fit_generator для обучения
history = model.fit_generator(batch_generator(X_train, y_train, 100, 1),
steps_per_epoch=300,
epochs=10,
validation_data=batch_generator(X_valid, y_valid, 100, 0),
validation_steps=200,
verbose=1,
shuffle = 1)
Iполучим ошибку, которая говорит
ValueError: Error when checking target: expected fc1000 to have shape (1000,) but got array with shape (1,)
Глядя на сводку модели, это имеет смысл, так как конечный Плотный слой имеет выходную форму (Нет, 1000)
fc1000 (Dense) (None, 1000) 2049000 avg_pool[0][0]
НоЯ не могу понять, как изменить модель.Я прочитал документацию Keras и просмотрел несколько примеров, но почти все, что я вижу, относится к модели классификации.
Как я могу изменить модель, чтобы она правильно отформатировалась для регрессии?