gpt4 book ai didi

python - Keras 的多维输入

转载 作者:行者123 更新时间:2023-11-30 08:28:06 24 4
gpt4 key购买 nike

我是 keras 新手,在运行多维模型时遇到问题。所以,我一直在尝试一些 sample 。这是其中之一。

from keras.models import Sequential
from keras.layers import Dense
import numpy as np

X_train = np.array([[[1, 2], [3, 4]], [[1, 2], [3, 4]]])
model = Sequential([
Dense(32, input_shape=X_train.shape[1:]),
])
model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd')
model.fit(X_train, [1, 2])


我希望上面的示例能够运行,但出现错误

Error when checking target: expected dense_1 to have 3 dimensions, but got array with shape (2, 1)

这可能是什么原因。谁能举例说明如何使用多维输入运行 keras 模型,即如何构建输入?谢谢。

最佳答案

我建议您对输出类进行一次性编码,即使用:

# Convert labels to categorical one-hot encoding
labels = np.array([1, 2]) # 0 - num_classes - 1
y_train = keras.utils.to_categorical(labels, num_classes=3)

然后使用“categorical_crossentropy”而不是“sparse_categorical_crossentropy”:

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

最后,如果您想要 2D 输出(样本 x 类),您应该在某个时刻展平您的 3D 输入。输出层中的单元数(只有一个)应与类数匹配并使用适当的激活函数(例如“softmax”)

model.add(Flatten(input_shape=X_train.shape[1:]))
model.add(Dense(3, activation='softmax'))

尝试查看用于多类 softmax 分类的多层感知器 (MLP): https://keras.io/getting-started/sequential-model-guide/

关于python - Keras 的多维输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45566695/

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