张量流基本lstm_cell中的trainable_weights和trainable_variables有什么区别?

问题描述 投票:2回答:1

在尝试使用基本LSTM单元(如here记录)复制Tensorflow中LSTM Cell的权重时,我偶然发现了trainable_weights和trainable_variables属性。

Source code并没有真正为我这样的遗产提供信息。然而,一些实验确实产生了以下信息:两者都具有完全相同的布局,是长度为2的列表,其中第一个条目是tf.Variable of shape:(2 * num_units,4 * num_units),第二个列表的条目具有形状(4 * num_units,),其中num_units是初始化BasicLSTMCell的num_units。对我来说直观的猜测是,第一个列表项是lstm的四个内部层的权重的串联,第二个项是各个偏差的串联,显然符合这些的预期大小。

现在的问题是,这些之间是否存在任何差异?我假设它们可能只是从rnn_cell类继承这些内容的结果?

tensorflow lstm
1个回答
2
投票

Layer继承的RNNCell类的源代码:

@property
def trainable_variables(self):
    return self.trainable_weights

here。 RNN类似乎没有覆盖这个定义 - 我认为它适用于具有可训练变量的特殊层类型,这些变量并不完全符合“权重”。我会想到批量标准化,但遗憾的是我找不到任何一个源代码中的trainable_variables(除了GraphKeys.TRAINABLE_VARIABLES不同)。

© www.soinside.com 2019 - 2024. All rights reserved.