You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取传入TensorFlow函数的所有参数?以Adam优化器为例

提取TensorFlow优化器的参数名及配置

针对你遇到的问题,TensorFlow/Keras提供了官方方法来提取优化器(或其他Keras组件)的配置参数,无需手动过滤dir()的冗余输出:

核心方法:get_config()

所有Keras优化器(包括Adam)都实现了get_config()方法,它会返回一个包含所有配置参数的字典,其中键就是你需要的参数名,值对应参数的设置值。

示例代码

import tensorflow as tf

# 初始化优化器
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001,
                                    beta_1=0.9,beta_2=0.999, 
                                     epsilon=1e-07, amsgrad=False, 
                                      name="Adam")

# 获取配置字典
optimizer_config = optimizer.get_config()
# 提取参数名列表
param_names = list(optimizer_config.keys())

print(param_names)
# 输出:['name', 'learning_rate', 'beta_1', 'beta_2', 'epsilon', 'amsgrad']

访问具体参数值

拿到参数名后,你有两种便捷方式获取对应的值:

  • 从配置字典中直接取值:optimizer_config['learning_rate']
  • 直接通过优化器的属性访问:optimizer.learning_rate

扩展到其他Keras组件

这个方法同样适用于损失函数、模型层等其他Keras组件,比如查看损失函数的参数:

loss_fn = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
print(loss_fn.get_config().keys())

为什么之前的方法无效?

  • .keys()仅适用于字典类型,优化器对象不是字典,因此报错
  • .__class__(你提到的.classes()应该是指这个)只能获取类的元信息,无法拿到实例的参数配置
  • dir(optimizer)会返回对象的所有属性和方法,包括大量内部私有方法(如__init__、__call__),过滤成本高;而get_config()是官方封装的专用配置提取方法,更高效可靠。

内容的提问来源于stack exchange,提问作者deijany91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:56:03