【问题标题】:Dimension error with RNN and word classificationRNN 和词分类的维度错误
【发布时间】:2020-07-22 13:55:39
【问题描述】:

我是 NLP 的新手,我想根据语言对不同的单词进行分类(基本上我的模型应该告诉我一个单词是法语、英语还是西班牙语等等)。

当我拟合以下模型时,出现尺寸错误。 “数据集”包含单词,它是一个大小为 (1550, 19) 的填充张量,“y”包含不同的语言,它也是一个大小为 (1550, 10) 的填充张量。

np.random.seed(42)
tf.random.set_seed(42)

from tensorflow.keras.layers import LSTM, GRU, Input, Embedding, Dense

input = Input(shape=[None])
z = Embedding(max_id + 1, 128, input_shape=[None], mask_zero=True)(input)
z = GRU(128)(z)
output = Dense(18, activation='softmax')(z)

model = keras.models.Model(input, output)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

h = model.fit(dataset, y, epochs=5)

ValueError:形状 (None, 10) 和 (None, 18) 不兼容

你看出问题出在哪里了吗?

谢谢!

【问题讨论】:

    标签: python keras nlp dimension


    【解决方案1】:

    消息告诉您形状不兼容,它们需要匹配。我会将此作为评论,但由于我的声誉,我不能,所以这就是我直接回答的原因,但我不确定它是否有效,你试过了吗:

    output = Dense(10, activation='softmax')(z)
    

    【讨论】:

    • 确实是维度问题。它不适用于 Dense(10)。
    猜你喜欢
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2018-09-24
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多