Python 检查目标时出错:预期连接_1具有形状(1),但获得具有形状(851,)的数组

Python 检查目标时出错:预期连接_1具有形状(1),但获得具有形状(851,)的数组,python,keras,keras-layer,Python,Keras,Keras Layer,我有一些关于keras连接的维度问题。模型的输出数组(None,851)似乎与错误消息中要求的尺寸不同。我得到的是: input_img = Input(shape=(32, 100, 1)) conv1 = Conv2D(filters = 64, kernel_size=(5, 5), strides=1, padding="same", activation="relu")(input_img) maxpool1 = MaxPooling2D(pool_size=(2, 2), stri

我有一些关于keras连接的维度问题。模型的输出数组(None,851)似乎与错误消息中要求的尺寸不同。我得到的是:

input_img = Input(shape=(32, 100, 1))

conv1 = Conv2D(filters = 64, kernel_size=(5, 5), strides=1, padding="same", activation="relu")(input_img)
maxpool1 = MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)(conv1)

conv2 = Conv2D(filters = 128, kernel_size=(5, 5), strides=1, padding="same", activation="relu")(maxpool1)
maxpool2 = MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)(conv2)

conv3 = Conv2D(filters = 256, kernel_size=(3, 3), strides=1, padding="same", activation="relu")(maxpool2)
maxpool3 = MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)(conv3)

conv4 = Conv2D(filters = 512, kernel_size=(3, 3), strides=1, padding="same", activation="relu")(maxpool3)
conv5 = Conv2D(filters = 512, kernel_size=(3, 3), strides=1, padding="same", activation="relu")(conv4)
flat1 = Flatten(data_format=None)(conv5)
dense1 = Dense(units = 4096, activation = "relu")(flat1)
dense2 = Dense(units = 4096)(dense1)

towers = [Dense(units = 37, activation='softmax')(dense2) for i in range (23)]
output = concatenate(towers, axis = -1)

char = Model(input=input_img, output=output)

当我尝试适合我的模型时,我得到以下信息: ValueError:检查目标时出错:预期连接_1具有形状(1),但获得具有形状(851,)的数组

我不明白为什么连接_1应该有形状(1,)而不是(851,)或(无,851) 我的目标列车的大小是(867851),所以

有人遇到过这种错误吗


非常感谢

问题在于您的
目标培训
,即您想要学习的输出。网络在连接23*37->851后,其在摘要中为
(无,851)
,其中
None
为动态批量大小


您需要调查如何将
target\u train
传递到
.fit
功能。模型输出为851,但训练循环给出的是一个单一目标。

问题在于您的
目标训练
,即您打算学习的所需输出。网络在连接23*37->851后,其在摘要中为
(无,851)
,其中
None
为动态批量大小

您需要调查如何将
target\u train
传递到
.fit
功能。模型输出为851,但训练循环给出1个单一目标