Использование Keras flow_from_dataframe для задачи регрессии с несколькими выходами - PullRequest
0 голосов
/ 07 апреля 2020

Я использую простую модель Keras с 2 плотными слоями в качестве выхода:

orientation = Dense(3, activation="linear", name='orientation')(base_output) position = Dense(3, activation="linear", name='position')(base_output)<br> model = Model(inputs=model.inputs, outputs=[position, orientation])

Мой Pandas информационный кадр содержит траектории изображений, данные о положении и ориентации (массивы из 3 элементов) ):

    paths                      position                        orientation  

0 /pth/to/img [0.001509, 0.707734, 0.020575] [-0.535463, 0.196570, -1.011444]

Я использую генератор поездов и обертку генератора:

train_datagen = ImageDataGenerator(rescale = 1./255, horizontal_flip = False,
                               fill_mode = "nearest", zoom_range = 0,
                               width_shift_range = 0, height_shift_range=0,
                               rotation_range=0) 

train_generator = train_datagen.flow_from_dataframe(train_dataframe, directory=None, x_col='paths', y_col=['position', 'orientation'], weight_col=None, target_size=(224, 224), color_mode='rgb', classes=None, class_mode='raw', batch_size=32, shuffle=True, seed=None, save_to_dir=None, save_prefix='', save_format='png', subset=None, interpolation='nearest', validate_filenames=True)

def generator_wrapper(generator):
    for batch_x,batch_y in generator:
        yield (batch_x,[batch_y[:,i] for i in range(2)])

Но получаю эту ошибку при попытке подгонки модели с fit_generator: ValueError: Ошибка при проверке цели: ожидаемая позиция будет иметь форму (3,), но получила массив с формой (1,)

Есть ли способ заполнить мои плотные слои массивами, используя этот поток? Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...