Получение ошибки класса при использовании Keras.layers.Add () - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь добавить два слоя размером (None, 24, 24, 8), но получаю ошибку класса, как показано ниже:

Код:

x = add([layers[i-1],layers[i-9]])

или

x = Add()([layers[i-1],layers[i-9]])

Ошибка:

/keras_222/local/lib/python2.7/site-packages/keras/engine/base_layer.py", line 285, in assert_input_compatibility
    str(inputs) + '. All inputs to the layer '
ValueError: Layer add_1 was called with an input that isn't a symbolic tensor. **Received type: <class** 'keras.layers.normalization.BatchNormalization'>. Full input: [<keras.layers.normalization.BatchNormalization object at 0x7f04e4085850>, <keras.layers.normalization.BatchNormalization object at 0x7f050013cd10>]. All inputs to the **layer should be tensors**.

Посоветуйте, пожалуйста, как двигаться вперед.Я также попытался поставить ось = 1 или ось = -1, но это не сработало.

x = Add()([layers[i-1],layers[i-9]],axis=1)

или

x = Add()([layers[i-1],layers[i-9]], axis=-1)

1 Ответ

0 голосов
/ 08 февраля 2019

Проблема в том, что вы пропускаете слои вместо тензоров к своему Add() слою.Я полагаю, у вас есть слой Input() где-то в вашем коде.Вам нужно пропустить этот ввод через другие слои.Вместо этого ваш код должен выглядеть примерно так:

input = Input(shape)
# pass input through other intermediate layers first if needed

output_1 = layers[i-1](input)
output_2 = layers[i-9](input)

x = Add()([output_1, output_2])
...