get_variable 和 model_variable 函数之间的区别?

Difference between get_variable and model_variable function?

在这个 I got to know the difference between the Variable and the get_variable but I encounter one more method to get or create a variable that is model_variable中,然后我很困惑什么时候用get_variable,什么时候选择model_variable

对于我所知道的文档:

get_variable:

Gets an existing variable with these parameters or create a new one.

model_variable:

Gets an existing model variable with these parameters or creates a new one.

我从 this question 可以看出:

Returns all variables in the MODEL_VARIABLES collection.

那么 get_variable 和 model_variable 功能的唯一区别就在于他们向往的 collection 吗?

据我所知,是的。查看 githubmodel_variable 的源代码,model_variable 包装 variable (在 linked 模块中定义),它本身是 [= 的包装器13=].

这个 answer seems to confirm that, and this Google Groups discussion 深入了解了为什么 tf.contrib 具有看似重复的功能,特别是这个功能。

至于使用哪一个,可能总是 tf.get_variable 除非您将某些东西与 slim 或其他特别需要它的东西集成在一起。我自己从未使用过 model_variable

编辑:澄清 variable 是在 link 中定义的,而不是 tf.Variable