Python Tensorflow内部优化器API中的“插槽变量”和“非插槽变量”之间有什么区别?

Python Tensorflow内部优化器API中的“插槽变量”和“非插槽变量”之间有什么区别?,python,optimization,tensorflow,Python,Optimization,Tensorflow,我熟悉Tensorflow Optimizer API,并通过Optimizer.Optimizer中的\u create\u slots()方法使用了slot变量,尽管我不是专家,但我已经尝试了理解此API的方法 在1.6RC1发行说明()中,关于插槽变量有以下几点我不完全理解: 非插槽变量的新优化器内部API。后代 AdamOptimizer,访问测试[12]\u电源需要更新 此处引用的非插槽变量是什么 API中插槽变量和非插槽变量之间有什么区别?Lucas B对另一个仅部分相关的问题给出的

我熟悉Tensorflow Optimizer API,并通过
Optimizer.Optimizer
中的
\u create\u slots()
方法使用了slot变量,尽管我不是专家,但我已经尝试了理解此API的方法

在1.6RC1发行说明()中,关于插槽变量有以下几点我不完全理解:

非插槽变量的新优化器内部API。后代 AdamOptimizer,访问测试[12]\u电源需要更新

此处引用的非插槽变量是什么


API中插槽变量和非插槽变量之间有什么区别?

Lucas B对另一个仅部分相关的问题给出的答案似乎完美地回答了这个问题:


TensorFlow优化器中的插槽变量是与每个可训练变量关联的子变量。例如,如果您有一个变量
Variable1
,则可以添加一个名为
MovingAverage
的插槽,其名称为
Variable1/MovingAverage

非时隙变量是优化器的一部分,与任何可训练变量都没有关联,例如,在David Parks链接的问题中,LucasB的答案中Adam中的计数器

见 有关文档中插槽的说明。还要注意的是,afaik Keras(TF2)优化器不显式支持非插槽变量—它看起来像是
优化器。\u set\u hyper()
是在TF2中实现这一点的方法


另外-systech的评论是不正确的-插槽和非插槽变量与Python的
\uuuuuuuuuuuuuuuuuuuuuu
功能无关。

它指的是。有一些API对插槽的优化明显不同于非插槽。此外,根据注释,如果您对该优化器进行子类化并访问该命名接口,您的代码将被破坏。不确定这是否有帮助。那么,人们是否应该将自定义优化器使用的全局标量存储为超参数,即使它们不打算从外部设置?