【问题标题】:What's default initial_state in tf.nn.dynamic_rnntf.nn.dynamic_rnn 中的默认 initial_state 是什么
【发布时间】:2020-10-27 05:59:37
【问题描述】:

通常,我们会将cell.zero_state 用作tf.nn.dynamic_rnninitial_state

现在,我想知道如果我们不设置 initial_statetf.nn.dynamic_rnn 中的默认 initial_state 是什么。

我能找到的最相似的问题是Setting initial state in dynamic RNN

但我不明白答案中的划痕是什么意思:

如果你不设置initial_state,它将从头开始训练为 其他权重矩阵也可以。

【问题讨论】:

    标签: python tensorflow neural-network recurrent-neural-network


    【解决方案1】:

    如果没有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_rnn的源码https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/ops/rnn.py#L671

    对于大多数默认单元实现,cell.get_initial_state 函数的定义与 cell.zero_state 相同,如果 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

    【讨论】:

      猜你喜欢
      • 2015-06-09
      • 1970-01-01
      • 2018-04-03
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      相关资源
      最近更新 更多