Несколько выходов в керас - модель ожидает несколько целевых массивов, но получил 1

У меня есть проблема, которая связана с выяснением существования определенных линий на изображении. в качестве входных данных - у меня есть двоичное изображение 96*54, в качестве выходных данных у меня есть 18 чисел с 1 или 0.

Когда я попытался создать несколько выходов, после подгонки я получил следующую ошибку: Модель ожидает 18 целевых массивов, но получил только один массив. Я попытался поэкспериментировать с изменением формы выходного тензора разными способами, даже используя массив python для хранения np-тензор, но безуспешно.

вот код:

main_input = Input(shape=(54,96,1))
x = Conv2D(16,kernel_size=(3,3),activation='relu')(main_input)
x = MaxPooling2D(pool_size=(2,2))(x)
x = Conv2D(32,kernel_size=(3,3),activation='relu')(x)
x = MaxPooling2D(pool_size=(2,2))(x)
x = Conv2D(64,(3,3),activation='relu')(x)
x = MaxPooling2D(pool_size=(2,2))(x)
x = Conv2D(128,(3,3),activation='relu')(x)
x = Flatten()(x)
x = Dense(256,activation='relu')(x)
out = [Dense(1,activation='softmax')(x)] * 18
y_train_split = np.asarray([y_train[:,i] for i in range(18)])

model = Model(inputs=main_input, outputs=out)
model.compile(loss=keras.losses.binary_crossentropy, optimizer=keras.optimizers.Adadelta(),metrics=['accuracy'])
model.fit(x_train, y_train_split, batch_size=batch_size, epochs=epochs,verbose=1,validation_data = (x_test,y_test))
score = model.evaluate(x_eval,y_eval,verbose=0)

0 ответов

Другие вопросы по тегам