tf.nn.dynamic_rnn 中的默认 initial_state 是什么
What's default initial_state in tf.nn.dynamic_rnn
通常我们会用cell.zero_state
作为tf.nn.dynamic_rnn
的initial_state
。
现在,我想知道如果我们不设置 initial_state
,tf.nn.dynamic_rnn
中的默认值 initial_state
是什么。
我能找到的最相似的问题是
但是我看不懂答案中的scratch是什么意思:
If you don't set the initial_state, it will be trained from scratch as
other weight matrices do.
如果没有initial_state
,dynamic_rnn会尝试调用cell.get_initial_state(inputs=None, batch_size=batch_size, dtype=dtype)
设置initial_state
,如果cell.get_initial_state
没有定义,cell.zero_state
被使用。参见dynamic_rnnhttps://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/ops/rnn.py#L671
的源代码
对于大多数默认单元实现,cell.get_initial_state
函数定义与 cell.zero_state
if inputs is none
相同。例如https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/ops/rnn_cell_impl.py#L281-L309
总之,无论是否设置initial_state
,都使用cell.zero_state
。但是您可以构建自己的单元并重新实现 cell.get_initial_state
.
通常我们会用cell.zero_state
作为tf.nn.dynamic_rnn
的initial_state
。
现在,我想知道如果我们不设置 initial_state
,tf.nn.dynamic_rnn
中的默认值 initial_state
是什么。
我能找到的最相似的问题是
但是我看不懂答案中的scratch是什么意思:
If you don't set the initial_state, it will be trained from scratch as other weight matrices do.
如果没有initial_state
,dynamic_rnn会尝试调用cell.get_initial_state(inputs=None, batch_size=batch_size, dtype=dtype)
设置initial_state
,如果cell.get_initial_state
没有定义,cell.zero_state
被使用。参见dynamic_rnnhttps://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/ops/rnn.py#L671
对于大多数默认单元实现,cell.get_initial_state
函数定义与 cell.zero_state
if inputs is none
相同。例如https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/ops/rnn_cell_impl.py#L281-L309
总之,无论是否设置initial_state
,都使用cell.zero_state
。但是您可以构建自己的单元并重新实现 cell.get_initial_state
.