gpt4 book ai didi

python - Keras 模型中的权重和变量有什​​么区别?

转载 作者:行者123 更新时间:2023-12-05 09:36:49 24 4
gpt4 key购买 nike

我注意到 tf.keras.Model 有两组相似的属性:

权重变量
trainable_weights, trainable_variables
non_trainable_weights, non_trainable_variables

还有方法:

add_weightadd_variable

在我看过的模型中,属性对的值是相同的,并且是您所期望的(tf.Variable 的适当集合)。

所以我的问题是:两者有什么区别?在概念上有什么区别,我应该在什么时候使用其中之一?

这是 TensorFlow 2.3.1。

最佳答案

如果我们看the code of tf.keras.layers.Layer ,我们看到 trainable_variablesnon_trainable_variablestrainable_weightsnon_trainable_weights

的简单 setter/getter
@property
@doc_controls.do_not_generate_docs
def trainable_variables(self):
return self.trainable_weights

@property
@doc_controls.do_not_generate_docs
def non_trainable_variables(self):
return self.non_trainable_weights

我相信这样做是为了保持一致性。在 tensorflow 代码库中,您会发现很多与高 API keras 无关的代码也具有这两个属性(trainable_variablesnon_trainable_variables)。

但是,查看 keras 存储库中的代码,很明显 keras 使用 trainable_weightsnon_trainable_weights 来引用相同的概念。查看Layer class in keras 2.2

关于python - Keras 模型中的权重和变量有什​​么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64915218/

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