【发布时间】:2017-08-15 12:30:26
【问题描述】:
这是代码https://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/models/rnn/ptb/ptb_word_lm.py,我想知道为什么我们可以通过以下方式输入模型:
cost, state, _ = session.run([m.cost, m.final_state, eval_op],
{m.input_data: x,
m.targets: y,
m.initial_state: state})
因为initial_state不在tf.placeholder,那我们怎么喂它呢?
在代码中,它定义了一个类。并定义self._initial_state = cell.zero_state(batch_size, data_type()),然后是state = self._initial_state,和(cell_output, state) = cell(inputs[:, time_step, :], state)。之后,self._final_state = state。更重要的是,它在类中定义了一个函数:
@property
def final_state(self):
return self._final_state
来了
state = m.initial_state.eval()
cost, state, _ = session.run([m.cost, m.final_state, eval_op],
{m.input_data: x,
m.targets: y,
m.initial_state: state})
而且我已经在本地运行了代码,它在 feeddict 中没有state 是完全不同的。
谁能帮忙?
【问题讨论】:
标签: python python-3.x tensorflow