的tensorflow tutorial語言模型可以計算句子的概率預測下一個單詞:使用語言模型tensorflow例如
probabilities = tf.nn.softmax(logits)
在評論
它下面還指定預測下一個字,而不是概率的方式,但沒有具體說明如何做到這一點。那麼如何用這個例子輸出一個單詞而不是概率呢?
lstm = rnn_cell.BasicLSTMCell(lstm_size)
# Initial state of the LSTM memory.
state = tf.zeros([batch_size, lstm.state_size])
loss = 0.0
for current_batch_of_words in words_in_dataset:
# The value of state is updated after processing each batch of words.
output, state = lstm(current_batch_of_words, state)
# The LSTM output can be used to make next word predictions
logits = tf.matmul(output, softmax_w) + softmax_b
probabilities = tf.nn.softmax(logits)
loss += loss_function(probabilities, target_words)
是的,我明白,你能爲相同的代碼的例子嗎?也有可能是一個巨大的詞彙量,迭代詞彙中的每個單詞實際上是不可行的。 – stackit
機器學習本質上是解決問題的一種高度計算方法。根據你如何訓練你的模型,你可能已經多次迭代詞彙。在一臺典型的機器上,你可以在幾秒鐘內迭代幾百萬個字符串,所以它可能不是不可行的。如果你想減少計算時間(以及隨後的性能),你可以實現一種方法來停止迭代,當你找到一個足夠大的結果時 –
在訓練過程中罰款,但不是在生產過程中使用 – stackit