我正在使用LSTM model in Tensorflow .
我已经训练并保存了LSTM模型 . 现在我要完成生成句子的最后一项任务 . 这是我的伪代码:
# We have already the run_epoch(session, m, data, eval_op, verbose=False) function with fee_dict like this:
feed_dict = {m.input_data: x,
m.targets: y,
m.initial_state: state}
...
# train and save model
...
# load saved model for generating task
new_sentence = [START_TOKEN]
# Here I want to generate a sentence until END_TOKEN is generated.
while new_sentence[-1] != END_TOKEN:
logits = get_logits(model, new_sentence)
# get argmax(logits) or sample(logits)
next_word = argmax(logits)
new_sentence.append(next_word)
print(new_sentence)
My question is:
在训练,验证或测试模型时,我必须通过feed_dict字典将两个输入及其标签(通过移位输入一个)提供给模型 . 但是在生成任务中,我只有一个输入,即生成句子new_sentence .
How can I build the right get_logits function or full generate function also?
1 回答
当您训练时,您有神经网络的输出,根据该输出计算错误,根据您创建优化器的错误来最小化错误 .
为了生成一个新句子,你需要得到神经网络的输出(rnn) .
编辑: