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

如何从MLPClassifier获取最终权重与偏置?coefs_和intercepts_属性疑问

MLPClassifier的coefs_、intercepts_属性及初始/最终权重获取

首先明确:MLPClassifier的coefs_和intercepts_属性存储的是训练完成后的最终权重与偏置值,并非初始值。

如何获取初始权重与偏置?

scikit-learn没有直接提供获取初始权重的公开属性,但可以通过以下方式实现:

  • 方法一:利用max_iter=0初始化模型
    创建模型时固定random_state保证可复现,设置max_iter=0,此时调用fit()方法只会完成模型结构初始化,不会执行训练迭代,此时的coefs_和intercepts_就是初始值。示例代码:

    from sklearn.neural_network import MLPClassifier
    import numpy as np
    
    # 初始化模型,固定随机种子,设置max_iter=0
    mlp = MLPClassifier(hidden_layer_sizes=(10,), random_state=42, max_iter=0)
    # 传入样本触发初始化
    X = np.random.rand(10, 5)
    y = np.random.randint(0, 2, 10)
    mlp.fit(X, y)
    # 获取初始权重和偏置
    initial_coefs = mlp.coefs_
    initial_intercepts = mlp.intercepts_
    
  • 方法二:自定义子类记录初始值
    继承MLPClassifier类,重写初始化相关方法,在权重生成时直接记录初始值,这种方式更稳定,避免依赖内部方法的变动风险。

如何获取最终权重与偏置?

模型训练完成后,直接访问coefs_和intercepts_属性即可:

# 正常训练模型
mlp = MLPClassifier(hidden_layer_sizes=(10,), random_state=42)
mlp.fit(X, y)
# 获取最终权重和偏置
final_coefs = mlp.coefs_
final_intercepts = mlp.intercepts_

其中coefs_是列表结构,每个元素对应一层的权重矩阵;intercepts_同样是列表,每个元素对应一层的偏置向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:46:05