Keras LSTM输入尺寸,带有一个热文本嵌入

时间:2016-12-21 04:47:16

标签: python machine-learning neural-network deep-learning keras

我有70k样本的文本,我使用Keras的“一个热”预处理嵌入。这给了我一个[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 个答案:

答案 0 :(得分:6)

我有两个建议。

  1. 也为目标变量(y)使用一个热表示。如果将Y作为整数给出,它将成为回归问题。只有当您提供一个热门编码时,它才会成为分类问题。
  2. 当您有大量文本而不是一次热嵌入时,请尝试使用word2vec嵌入。
  3. <DataTrigger Binding="{Binding IsKeyboardFocusWithin,ElementName=FwInstances,Mode=OneWay}" Value="True">
     <Setter Property="Visibility" Value="Visible"/>
    </DataTrigger>