我有一个设置,需要在主初始化之后初始化 LSTM,它使用tf.initialize_all_variables()
。 IE。我想打电话tf.initialize_variables([var_list])
有没有办法收集两者的所有内部可训练变量:
- rnn_cell.BasicLSTM
- rnn_cell.MultiRNNCell
这样我就可以初始化JUST这些参数?
我想要这个的主要原因是因为我不想重新初始化之前的一些训练值。
解决问题的最简单方法是使用变量范围。作用域内变量的名称将以其名称作为前缀。这是一个简短的片段:
cell = rnn_cell.BasicLSTMCell(num_nodes)
with tf.variable_scope("LSTM") as vs:
# Execute the LSTM cell here in any way, for example:
for i in range(num_steps):
output[i], state = cell(input_data[i], state)
# Retrieve just the LSTM variables.
lstm_variables = [v for v in tf.all_variables()
if v.name.startswith(vs.name)]
# [..]
# Initialize the LSTM variables.
tf.initialize_variables(lstm_variables)
它会以同样的方式工作MultiRNNCell
.
编辑:已更改tf.trainable_variables
to tf.all_variables()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)