gpt4 book ai didi

python - 动态设置tensorflow变量的训练能力

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:45 24 4
gpt4 key购买 nike

我有一个包含多个变量的多个范围的网络。我需要一种方法来设置特定变量或名称范围的训练能力,以便它们不会更新并且不会包含在梯度计算中,然后在某些条件下将它们设置为可训练。有可能吗?如果是,怎么做?

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 并一起训练它们。

最佳答案

您可以使用的一件事是每个优化器都有的 var_list 参数:https://www.tensorflow.org/api_docs/python/tf/train/Optimizer

文档说:

var_list: Optional list of Variable objects to update to minimize loss. Defaults to the list of variables collected in the graph under the key GraphKeys.TRAINABLE_VARIABLES.

在你的情况下你可以说:

optimizer = GradientDescentOptimizer(0.01)
optimizer.minimize(loss,[w1,w2])

如果这有帮助,请告诉我们!

关于python - 动态设置tensorflow变量的训练能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42757805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com