我想在训练步骤期间将变量和偏差张量保存为检查点。我使用 tf.contrib.layers 中的 full_connected() 来实现几个完全连接的层。为此,我需要提取这些完全连接层的变量和偏差张量。如何做到这一点?
最佳答案
顺便提一下:
- 无需提取权重和偏差来保存它们。对于 tf.layers 或 tf.contrib.layers,如果 trainable 设置为
True
,权重和偏差将添加到GraphKeys.TRAINABLE_VARIABLES
,它是的子集>GraphKeys.GLOBAL_VARIABLES
。因此,如果您在某个时候使用saver = tf.train.Saver(var_list=tf.global_variables())
和saver.save(sess, save_path, global_step)
,权重和偏差将被保存。 - 如果您确实需要提取变量,一种方法是使用
tf.get_variable
或tf.get_default_graph().get_tensor_by_name
以及正确的变量名称,如下其他答案提到过。 - 您可能已经注意到 TensorFlow 类,例如
tf.layer.Dense
和tf.layers.Conv2D
。构建完成后,它们具有返回权重和偏差张量的weights
/variables
方法。
关于machine-learning - 访问完全连接中的变量和偏置张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47856057/