【发布时间】:2020-07-23 12:56:39
【问题描述】:
所以我想通过 keras 预测产品在亚马逊上获得的星数,我已经看到了其他方法,但我使用了带有 one-hot 编码的通用句子编码器(我遵循了一个 Youtube 教程嵌入评论)。现在不使用 LSTM 层并使用以下层:
`model.add(keras.layers.Dense(units=256,input_shape=(X_train.shape[1], ),activation='relu'))
model.add(keras.layers.Dropout(rate=0.5))
model.add(keras.layers.Dense(units=128,activation='relu'))
model.add(keras.layers.Dropout(rate=0.5))
model.add(keras.layers.Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(0.0001),metrics= ['accuracy'])`
我能够获得大约 0.55 的准确度和 1 的损失,这不是很好。但是,当我将 X_train 和 X_test 数据重塑为 LSTM 层的 3D 输入,然后将其放入模型中时,例如:
`model.add(keras.layers.Dense(units=256,input_shape=(512, 1), activation='relu'))
model.add(keras.layers.Dropout(rate=0.5))
model.add(keras.layers.Bidirectional(keras.layers.LSTM(100, dropout=0.2, recurrent_dropout=0.3)))
model.add(keras.layers.Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(0.0001),metrics= ['accuracy'])`
我得到了大约 0.2 的准确度,甚至更差,损失接近 2.00。
我不知道是否需要 LSTM,因为我是神经网络的新手,但我一直在为我的项目尝试这样做。
所以我问我应该坚持不使用 LSTM 的第一个模型,还是有办法在使用我使用的嵌入方法的同时改变带有 LSTM 的第二个神经网络的准确度为 0.2?
感谢您的宝贵时间!
【问题讨论】:
标签: python tensorflow keras sentiment-analysis