python - Keras LSTM 模型获取标签的概率
问题描述
我创建了一个 keras LSTM 模型来预测给定句子的下一个单词:
pretrained_weights = w2v_model.wv.syn0
vocab_size, emdedding_size = pretrained_weights.shape
lstm_model = Sequential()
lstm_model.add(Embedding(input_dim= vocab_size, output_dim=emdedding_size, weights=[pretrained_weights]))
lstm_model.add(LSTM(units=emdedding_size))
lstm_model.add(Dense(units=vocab_size))
lstm_model.add(Activation('softmax'))
lstm_model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
lstm_model.fit(X, y, batch_size=128, epochs=3)
当 X 是句子并且 y 是每个句子的下一个单词时。现在,我有一个句子和 5 个单词,我想根据给定句子的概率对它们进行排名。最好的方法是什么?
解决方案
将 LSTM 输出层的激活函数更改为“sigmoid”,它将起作用。
pretrained_weights = w2v_model.wv.syn0
vocab_size, emdedding_size = pretrained_weights.shape
lstm_model = Sequential()
lstm_model.add(Embedding(input_dim= vocab_size, output_dim=emdedding_size, weights=[pretrained_weights]))
lstm_model.add(LSTM(units=emdedding_size))
lstm_model.add(Dense(units=vocab_size))
lstm_model.add(Activation('sigmoid'))
lstm_model.compile(optimizer='adam', loss='mean_squared_error')
lstm_model.fit(X, y, batch_size=128, epochs=3)
推荐阅读
- couchbase - 意外查询删除了沙发库中的所有记录如何恢复
- java - 递归如何与 Java 8 Stream 一起工作?
- jquery - 检查复选框时,请取消选中单选按钮,并且在未选中复选框时,请使用jQuery检查单选按钮
- python-3.x - 如何在keras中获得输出为+1和-1的二进制双极激活函数?
- django - 我需要帮助覆盖 django rest auth 包中的用户注册字段
- reactjs - 在 react redux 应用程序上显示更新/发布的动态消息
- c# - 在已发布的 ASP.Net Core API 中创建和保存文件不起作用
- javascript - 放入 carousal 时图像被拉伸
- sql - 分层列标签 SQL
- php - 如何在 laravel 中设置未来的软删除