【发布时间】:2017-03-13 15:45:04
【问题描述】:
我有一个包含多个变量的多个范围的网络。我需要一种方法来设置特定变量或名称范围的可训练性,以便它们不会更新并且不包含在梯度计算中,然后在某些条件下将它们设置为可训练。甚至可能吗?如果是,如何?
with tf.name_scope('layer1'):
w = tf.Variable(...)
b = tf.Variable(...)
... some function ...
with tf.name_scope('layer2'):
w = tf.Variable(...)
b = tf.Variable(...)
... some function ...
with tf.name_scope('layer3'):
w = tf.Variable(...)
b = tf.Variable(...)
... some function ...
我想更改第一个范围内变量的可训练能力,因为它们是从预先训练的文件中恢复的,并且它们已经被学习过。所以,我想训练其他层中的变量,直到它们被学习,然后将第一个范围内的变量的训练能力设置回 True 并一起训练它们。
【问题讨论】:
-
很少接受纯文本问题。请在代码中显示您所做的工作。
-
您可以将
variable_list传递给最小化器来决定要更新哪些变量。
标签: python machine-learning tensorflow neural-network deep-learning