AdamConfig¶
from cascaqit import AdamConfig
AdamConfig ¶
AdamConfig(
learning_rate: float = 0.05,
beta1: float = 0.9,
beta2: float = 0.999,
epsilon: float = 1e-08,
stopping: AdamStoppingConfig | None = None,
schema_version: str = ADAM_SCHEMA_VERSION,
)
设置原生 Adam 的学习率与动量。learning_rate 和 epsilon 必须有限且大于 0;beta1、beta2 均严格位于 (0, 1)。默认值分别为 0.05、1e-8、0.9、0.999。更新使用一阶/二阶动量及偏差修正;有参数边界时,更新点会投影到边界内。
stopping 可提供 AdamStoppingConfig。此配置不选择梯度方法,仍需在 OptimizerConfig 中设置 method="ADAM" 和 GradientConfig。小学习率可能使更新变小,但不能据此推断梯度或能量已收敛。
from cascaqit import AdamConfig, OptimizerConfig
from cascaqit.algorithms import GradientConfig
adam = AdamConfig(learning_rate=0.03)
optimizer = OptimizerConfig(method="ADAM", max_iterations=4,
gradient=GradientConfig(), adam=adam, seed=7)
assert optimizer.adam.learning_rate == 0.03
assert AdamConfig.from_json(adam.to_json()) == adam
assert "stopping" not in adam.to_dict()
从字典还原 AdamConfig。省略字段使用默认值,嵌套配置还原后重新校验。 缺少必需字段或字段不合法时可能抛出 KeyError、TypeError 或 ValueError。
解析 JSON 对象并调用 from_dict(),返回 AdamConfig。非法 JSON 会抛出解析错误;顶层不是对象时抛出 TypeError。
stopping=None 时省略该字段。 返回可写入 JSON 的字典,嵌套对象一并序列化。元组转成数组;这个字典是保存的声明,不是执行结果。
返回 JSON 字符串,不写文件。indent=None 使用紧凑格式;提供缩进宽度可便于阅读。
返回规范 JSON 的 SHA-256 十六进制摘要。字段、标识或元数据变化都可能改变摘要;它用于比较保存内容,不判断两个声明在物理上是否等价。