我正在尝试进行 Keras 分类。我有 1043 个单词,表示为 one-hot 编码矩阵(20 个字母长,每个字母有 26 个可能性)。每一个都属于 19 个不同类别之一。
X.shape >>>>>> (1043, 20, 26)
Y.shape >>>>>> (1043, 19)
这是我构建模型的尝试。
model = Sequential()
model.add(SimpleRNN(50, input_shape=(20, 26), return_sequences=True))
model.add(Dense(40, activation='relu'))
model.add(Dense(num_categories, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
model.fit(X, Y, epochs=20, batch_size=5, verbose=1)
这崩溃说:ValueError: Error when checking target: expected dense_91 to have 3 dimensions, but got array with shape (1043, 19)
我觉得我在该input_shape
领域缺少一些明显的东西,还是有其他一些配置技巧?我在网上也找不到此类问题的任何明确示例。
更新:我怀疑我需要将时间片折叠成一个最终答案,但我不知道该怎么做。似乎它在正确的TimeDistributed
轨道上,但我无法让它工作。