Il tensorflow tutorial sul modello di linguaggio permette di calcolare la probabilità di frasi:Previsione parola successiva utilizzando il modello di linguaggio tensorflow esempio
probabilities = tf.nn.softmax(logits)
nei commenti qui sotto specifica anche un modo di prevedere la parola successiva, invece di probabilità, ma non specifica come questo può essere fatto. Quindi, come generare una parola anziché una probabilità usando questo esempio?
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)
Sì ho capito che si può codificare un esempio per lo stesso? Inoltre c'è probabilmente una dimensione enorme del vocabol e iterare per ogni parola nel vocab è praticamente impossibile. – stackit
L'apprendimento automatico nella sua natura è un metodo di calcolo elevato per risolvere un problema. A seconda di come stai allenando il tuo modello, potresti già ripetere il vocabolario molte volte. Su una macchina tipica, è possibile eseguire iterazioni su un paio di milioni di stringhe in pochi secondi, quindi potrebbe non essere possibile. Se vuoi ridurre il tempo di calcolo (e successivamente le prestazioni) puoi implementare un modo per interrompere semplicemente l'iterazione quando trovi un risultato con una probabilità abbastanza grande –
Durante l'allenamento va bene, ma non durante l'uso di produzione – stackit