Keras多维度输入

2024-04-27 07:48:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我是keras的新手,我在运行一个超过一个维度的模型时遇到了一个问题。所以,我试了一些样品。这就是其中之一。

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])


我希望上面的示例运行,但我得到了一个错误

^{pr2}$

为什么会这样呢。有谁能举一个例子来说明如何使用多维输入来运行keras模型,即输入应该如何组织?谢谢您。在


Tags: from模型importnumpymodelmodelslayersnp
1条回答
网友
1楼 · 发布于 2024-04-27 07:48:21

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

# 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)

然后用“分类熵”代替“稀疏分类熵”:

^{pr2}$

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

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

请尝试查看多层感知器(MLP)进行多类softmax分类,网址: https://keras.io/getting-started/sequential-model-guide/

相关问题 更多 >