gpt4 book ai didi

python - 具有一个热文本嵌入的 Keras LSTM 输入维度

转载 作者:太空狗 更新时间:2023-10-29 23:57:36 26 4
gpt4 key购买 nike

我有 70k 个文本样本,我使用 Keras“one hot”预处理嵌入了这些样本。这为我提供了一个 [40, 20, 142...] 数组,然后我将其填充长度为 28(最长样本长度)。我想要做的就是将这些值预测为某个分类标签(可以说是 0 到 5)。当我训练模型时,我无法获得超过 -.13% 的准确度(目前我的错误是 this 我已经尝试了很多方法来传递输入)。

This is my data目前,我只是想创建一个简单的 LSTM。同样,我的数据是 X -> [28 个整数值的长度,嵌入] 和 Y -> [1 个长度为 3 的整数,(100、143 等)]。知道我做错了什么吗?我问过很多人,没有人能提供帮助。这是我的模型的代码......有什么想法吗? :(

optimizer = RMSprop(lr=0.01) #saw this online, no idea
model = Sequential()
model.add(Embedding(input_dim=28,output_dim=1,init='uniform')) #28 features, 1 dim output?
model.add(LSTM(150)) #just adding my LSTM nodes
model.add(Dense(1)) #since I want my output to be 1 integer value

model.compile(loss='sparse_categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
print(model.summary())

编辑:

使用 model.add(Embedding(input_dim=900,output_dim=8,init='uniform')) 似乎有效,但准确性仍然没有提高,我不知道该怎么做做。

最佳答案

我有两个建议。

  1. 也对目标变量 (y) 使用一个热表示。如果你给 Y 作为整数,它将成为一个回归问题。只有你给一个one hot encoding,它才变成分类问题。
  2. 当您有大量文本时,尝试使用 word2vec 嵌入,而不是一个热嵌入。

optimizer = RMSprop(lr=0.01)
embedding_vecor_length = 32
max_review_length = 28
nb_classes= 8
model = Sequential()
model.add(Embedding(input_dim=900, output_dim=embedding_vecor_length,
input_length=max_review_length))

model.add(LSTM(150))

#output_dim is a categorical variable with 8 classes
model.add(Dense(output_dim=nb_classes, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
print(model.summary())

model.fit(X_train, y_train, nb_epoch=3, batch_size=64)

# Final evaluation of the model
scores = model.evaluate(X_test, y_test, verbose=0)
print("Accuracy: %.2f%%" % (scores[1]*100))

关于python - 具有一个热文本嵌入的 Keras LSTM 输入维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41255268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com