我目前正在阅读基于Tensorflow的苗条库的源代码,并且它们将values参数用于variable_scope很多方法,例如here。
values
variable_scope
从API页面,我可以看到:
该上下文管理器验证(可选)值是否来自同一图,确保该图是默认图,并推送名称范围和变量范围。
我的问题是:values仅检查来自的变量是否来自同一张图?有哪些用例?为什么有人需要它?
variable_scope参数有助于确保变量的唯一性并在需要时重用变量。
是的,如果您创建两个或更多不同的计算图,则它们不一定共享相同的变量范围;但是,有一些方法可以使它们在图形之间共享,因此可以使用该选项。
可变范围的主要用例是RNN,其中许多权重被绑定和重用。这就是有人需要它的原因之一。这样做的另一个主要原因是要确保您在明确表示“不是”的情况下重用相同的变量。(对于分布式设置,这可能会成为一个问题。)