gpt4 book ai didi

python - Keras:预期 activate_3 具有形状 (None, 3),但得到的数组具有形状 (5708, 1)

转载 作者:行者123 更新时间:2023-11-28 21:37:21 27 4
gpt4 key购买 nike

我不想用 Keras 训练简单的多层感知器。我的输入 (x_train) 是一个 np.array,其中每个数据点都由 300 维向量表示。我的输出应该是 0,1 或 2 类。形状:x_train: (5708, 300)y_火车:(5708,)形状:(300,)

shape = x_train[0].shape
model = Sequential()
model.add(Dense(32, input_shape=shape))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(16))
model.add(Activation('relu'))
model.add(Dense(num_classes))
model.add(Activation('softmax'))

model.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])

history = model.fit(x_train, y_train, epochs=5)

调用 model.fit 后出现此错误:

ValueError: Error when checking target: expected activation_3 to have shape (None, 3) but got array with shape (5708, 1)

出了什么问题,activation_3 是哪一层?

最佳答案

将网络的输出(形状 5708 x 3)与提供的 y_train(形状 5708 x 1)进行比较时发生错误

您的网络输出的形状为“批量大小 x 类数”,即 5708 x 3(三个输出类的概率分布),因此地面实况标签应该是一种热编码,以便能够使用分类交叉熵

因此,对于 300 个维度的任何输入样本向量,真实标签应该是 [1, 0, 0]、[0, 1, 0] 或 [0, 0, 1] 之一

关于python - Keras:预期 activate_3 具有形状 (None, 3),但得到的数组具有形状 (5708, 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49690256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com