带概率标签的列车LSTM

2024-04-25 17:52:20 发布

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

我目前正在做一个项目,比如10个用户将短信分为两类。我尝试使用Distribution作为培训LSTM的标签,例如,如果10个用户中有8个投了赞成票,那么标签是0.8。你知道吗

我现在正在使用以下模型:

lstm = Sequential()
lstm.add(Embedding(number_unique_words, vector_size, weights=[embedding_matrix], input_length=max_len, trainable=False))
lstm.add(LSTM(64))
lstm.add(Dense(64, activation='sigmoid'))
lstm.add(Dense(1, activation='sigmoid'))

lstm.compile(loss='mse',
             optimizer="adam",
             metrics=['acc'])

results = lstm.fit(x, 
                   y, 
                   batch_size=128, 
                   epochs=5, 
                   validation_split=0.4, 
                   shuffle=True)

嵌入矩阵由一个500维word2vec模型创建,该模型由一个标记器创建。模型的输入是一个标记化的注释。你知道吗

我已经尝试过改变LSTM和隐藏层的大小和数量,使用不同的优化器和lrs、批处理大小、epochs和激活/丢失函数。问题是acc总是停留在50%左右,并且模型预测所有测试用例的一个常量值。你知道吗

有人知道这不管用吗?难道不可能用概率标签来训练LSTM吗?你知道吗


Tags: 项目用户标记模型addsize标签短信
1条回答
网友
1楼 · 发布于 2024-04-25 17:52:20

解决了我的问题。我一直在用“post”的方式填充标记化的评论,所以我在后面加了0,以使它们具有固定的长度。在注释前加0(“pre”)完全改变了结果。LSTM的效果更好!你知道吗

进一步阅读请检查pad\u序列和padding下的https://keras.io/preprocessing/sequence/

相关问题 更多 >