Max*_*793 6 python machine-learning neural-network deep-learning keras
我有70k样本的文本,我使用Keras'one hot'预处理嵌入了.这给了我一个数组,[40, 20, 142...]然后我填充长度为28(最长的样本长度).我所要做的就是将这些值预测为某些分类标签(0到5可以说).当我训练模型,我不能得到任何超越-.13%的准确度(目前我的错误是这个我已经尝试了许多方法来传递输入).
这是我目前的数据,我只想创建一个简单的LSTM.我的数据再次是X - > [28个整数值的长度,嵌入]和Y - > [长度为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())
Run Code Online (Sandbox Code Playgroud)
编辑:
使用model.add(Embedding(input_dim=900,output_dim=8,init='uniform'))似乎工作,但仍然准确性从未改善,我不知道该怎么做.
我有两个建议.
编辑:
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))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3932 次 |
| 最近记录: |