Tensorflow의 LSTM 튜토리얼을 이해하고 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb/ptb_word_lm.py 코드에 대한 질문이 있습니다.Tensorflow의 PTB LSTM 예제에서 배치가 반복되는 방식은 무엇입니까?
for step in range(model.input.epoch_size):
feed_dict = {}
for i, (c, h) in enumerate(model.initial_state):
feed_dict[c] = state[i].c
feed_dict[h] = state[i].h
vals = session.run(fetches, feed_dict)
cost = vals["cost"]
state = vals["final_state"]
costs += cost
iters += model.input.num_steps
if verbose and step % (model.input.epoch_size // 10) == 10:
print("%.3f perplexity: %.3f speed: %.0f wps" %
(step * 1.0/model.input.epoch_size, np.exp(costs/iters),
iters * model.input.batch_size/(time.time() - start_time)))
하지만 궁금해하는 방법이 코드는 우리가 어떤 시대의 LSTM 모델을 "에게"않습니다 run_epoch()
이 라인은 시대를 실행하는 기능에서 는 input.epoch_size
는 실제로 데이터의 일괄 처리의 수? init 메소드의 LSTM 클래스에서 전체 데이터가로드되고 계산은 일반적으로 데이터에 정의됩니다.
두 번째 질문은 c
및 h
을 계산에 넣는 것입니다. 왜 우리가 그걸합니까? 그것은 상태없는 vs 무국적 LSTM과 관련이 있습니까? 그래서 바닐라 LSTM에 대해이 코드를 안전하게 제거 할 수 있습니까?
감사합니다.
첫 번째 질문을 완전히 이해하고 있는지 잘 모르겠습니다. 오역 한 경우를 대비하여 의견을 남기십시오. – martianwars