Слой был вызван с вводом, который не является символическим тензором. [Keras] - PullRequest
0 голосов
/ 09 января 2019

Я получаю ошибку в следующем коде

flatten = Flatten()(drop_5)
aux_rand = Input(shape=(1,))
concat = Concatenate([flatten, aux_input])

fc1 = Dense(512, kernel_regularizer=regularizers.l2(weight_decay))(concat)

ValueError: Слой density_1 был вызван с входом, который не является символический тензор. Полученный тип:. Полный ввод: []. Все входы в слой должен быть тензором.

(x_train, y_train), (x_test, y_test) = cifar10.load_data()
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')

aux_rand = np.random.rand(y_train.shape[0])
model_inst = cifar10vgg()
x_train_input = Input(shape=(32,32,3))
aux_input = Input(shape=(1,))
model = Model(inputs=[x_train_input, aux_input], output=model_inst.build_model())
model.fit(x=[x_train, aux_rand], y=y_train, batch_size=batch_size, steps_per_epoch=x_train.shape[0] // batch_size,
                epochs=maxepoches, validation_data=(x_test, y_test),
                callbacks=[reduce_lr, tensorboard], verbose=2)

model_inst.build_model() возвращает выходные данные из последнего слоя модели (Activation('softmax')(fc2))

1 Ответ

0 голосов
/ 09 января 2019

Ошибка возникает из-за того, что concat не является тензором. Слой keras.layers.Concatenate должен называться следующим образом:

concat = Concatenate()([flatten, aux_input])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...