我能夠使用tensorflow tutorials來訓練語言模型,模型按照code given here保存爲檢查點文件。使用RNN tensorflow語言模型來預測測試語句的概率
save_path = saver.save(sess, "/tmp/model.epoch.%03d.ckpt" % (i + 1))
現在我需要恢復的檢查點,並在下面的代碼中使用它:
def run_epoch(session, m, data, eval_op, verbose=False):
"""Runs the model on the given data."""
epoch_size = ((len(data) // m.batch_size) - 1) // m.num_steps
start_time = time.time()
costs = 0.0
iters = 0
state = m.initial_state.eval()
for step, (x, y) in enumerate(reader.ptb_iterator(data, m.batch_size,
m.num_steps)):
cost, state, _ = session.run([m.cost, m.final_state, eval_op],
{m.input_data: x,
m.targets: y,
m.initial_state: state})
costs += cost
iters += m.num_steps
if verbose and step % (epoch_size // 10) == 10:
print("%.3f perplexity: %.3f speed: %.0f wps" %
(step * 1.0/epoch_size, np.exp(costs/iters),
iters * m.batch_size/(time.time() - start_time)))
return np.exp(costs/iters)
我無法找到編碼測試句子並得到從訓練的關卡模式句子概率輸出的任何方式。
的教程何況下面的代碼:
probabilities = tf.nn.softmax(logits)
,但是這是訓練,我想不通我怎麼得到實際的概率。 我應該在理想情況下得到的東西,如:
>>getprob('this is a temp sentence')
>>0.322
默認測試文件是ptb.text.txt,只需用您的句子替換該文件的內容即可。 – Romain
返回的pobas的形狀是400 * 10000,詞彙大小是vocab_size = 10000,所以如何獲得每個句子的概率?> – stackit
續:對於小模型,所以如何解釋這個 – stackit