在此answer中,我了解了Variable
和get_variable
之间的区别,但是我遇到了另一种获取或创建model_variable变量的方法,于是我困惑何时使用get_variable
和何时选择model_variable
。
对于文档,我知道:
get_variable:
使用这些参数获取现有变量或创建一个新变量。
model_variable:
使用这些参数获取现有的模型变量或创建一个新的模型变量。
我可以从this question看到:
返回MODEL_VARIABLES集合中的所有变量。
那是真的,get_variable和model_variable函数之间的唯一区别在于它们想要的集合吗?
最佳答案
据我所知,是的。在github上查看model_variable
的源代码,model_variable
包装variable
(在链接模块中定义),它本身是get_variable
的包装。
该answer似乎证实了这一点,并且该Google网上论坛discussion深入了解了为什么tf.contrib
具有看似重复的功能,尤其是该功能。
至于要使用哪一个,除非您正在集成slim或其他需要它的东西,否则可能总是使用tf.get_variable
。我自己从未使用过model_variable
。
编辑:澄清variable
是在链接中定义的,而不是tf.Variable
。