我对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:形状(无,10)和(无,18)不兼容
您看到问题出在哪里吗?
谢谢!
答案 0 :(得分:0)
该消息告诉您形状不兼容,需要匹配。我本来可以将此作为评论,但是由于我的声誉我不能这样做,所以这就是我直接回答的原因,但是我不确定它是否可行,您是否尝试过:
2009 2008 2007
A 2.0 10.0 NaN
B 3.0 15.0 14.0
C 1.0 5.0 15.0
D NaN 5.0 7.0