Python Tensorflow内部优化器API中的“插槽变量”和“非插槽变量”之间有什么区别?
我熟悉Tensorflow Optimizer 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对另一个仅部分相关的问题给出的
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对插槽的优化明显不同于非插槽。此外,根据注释,如果您对该优化器进行子类化并访问该命名接口,您的代码将被破坏。不确定这是否有帮助。那么,人们是否应该将自定义优化器使用的全局标量存储为超参数,即使它们不打算从外部设置?