Видоизмененный слой для keras, похоже, не работает должным образом, что дает ожидаемую ошибку измерения - PullRequest
0 голосов
/ 21 апреля 2019

Поэтому я пытаюсь выполнить тренировку на модели FCN8 на изображениях формы (3, 224, 224), но столкнулся с проблемой со слоем Reshape прямо перед слоем активации.Кажется, он работает не так, как задумано, или я могу делать что-то не так.

Для самой модели я подробно ссылаюсь на ту, что приведена здесь, поскольку я новичок в этом: https://github.com/divamgupta/image-segmentation-keras/blob/master/Models/FCN8.py

Я также пытался вручную ввести размеры для изменения формы

o = (Reshape((3,outputHeight*outputWidth)))(o)

, но безуспешно.В настоящее время я использую версию 2.2.2 для Keras.

в ссылочной ссылке github:

def FCN8(...):
    ...
    ...
    ...
    o = (Reshape((  -1  , outputHeight*outputWidth   )))(o)
    o = (Permute((2, 1)))(o)
    o = (Activation('softmax'))(o)
    model = Model( img_input , o )
    model.outputWidth = outputWidth
    model.outputHeight = outputHeight

    return model

, поэтому к тому времени, когда тензор достигнет уровня активации, он должен совпадать с тем, что показано в модели.summary ()

FCN8 model

но, к сожалению, я вижу следующее:

ValueError: Ошибка при проверке цели: ожидается, что для Activation_1 задано 3 измерения, но получен массив с формой (1, 3, 224, 224)

...