我正在尝试创建具有多个输入的Keras模型。
input_img = Input(shape=(728,))
input_1 = Input(shape=(1,))
input_2 = Input(shape=(1,))
x = (Dense(48,kernel_initializer='normal',activation="relu"))(input_img)
x = (Dropout(0.2))(x)
x = (Dense(24,activation="tanh"))(x)
x = (Dropout(0.3))(x)
x = (Dense(1))(x)
x = keras.layers.concatenate([x, input_1, input_2])
x = (Activation("sigmoid"))(x)
cnn = Model(inputs = ([input_img, input_1, input_2]), outputs = x)
cnn.compile(loss="binary_crossentropy", optimizer='adam')
我将输入定义为
inputs = ([X_train.reshape(10000,728), input_1.reshape(10000,), input_2.reshape(10000,)])
并接受如下培训
history = cnn.fit(输入,标签,validation_split = 0.2,历元= 30,batch_size = 100,validation_data =(验证,labels_test))
每次运行此命令时,都会出现以下错误
ValueError: Error when checking target: expected activation_12 to have shape (3,) but got array with shape (1,)
如果输入尺寸不同,如何将输入传递为形状(3,)?
答案 0 :(得分:0)
我复制了您的代码用于仿真,并且似乎运行正常。
这是模拟代码:
MeshImpostor
我建议您正确检查您的训练数据和标签数据形状,以确保没有冲突的形状可能会引发错误。 您还可以将数据转换为张量,看看是否可以解决您的问题。