gpt4 book ai didi

Tensorflow:我可以将多个 name_scope 合并为一个以进行优化器更新吗?

转载 作者:行者123 更新时间:2023-12-03 00:40:17 25 4
gpt4 key购买 nike

我有两个命名范围用于 CNN 的单独子图(使用 tf.variable_scope)。我可以将两个作用域合并为一个作用域,以便我的优化器仅更新两个作用域中的变量吗?

最佳答案

根据tf.Optmizer documentation ,函数minimize可以采用 var_list (这些变量引用图中学习到的变量权重)。因此,使用它您只需要从图中获取变量列表(例如简单 MLP 的 [w1, b1])。

<小时/>

如果您使用 tf.variable_scope 命名它们,则应该能够使用 tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLESscope="my_scope_name") ,如 tf.get_collection documentation 中所述。如果要获取两个变量范围,则应该能够使用 + 获取组合列表。运算符,因为调用返回一个 python 列表。

<小时/>

所以,结合这两个想法,我相信你可以做到:

loss = ...
vars_to_minimize = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope='var_scope_name_1') +
tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope='var_scope_name_2')
minimize_op = tf.Optimizer().minimize(loss, var_list=vars_to_minimize)
<小时/>

注意:参见GraphKeys documentation有关在 get_collection 调用中使用的可用键的更多详细信息。

关于Tensorflow:我可以将多个 name_scope 合并为一个以进行优化器更新吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39303039/

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