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

Python实例化SET_MLP报缺少dimensions、activations必填位置参数错误

问题根因
  • 类实例化参数缺失:SET_MLP的构造方法__init__定义中,dimensions、activations是无默认值的必填位置参数,执行a = SET_MLP()时未传入这两个参数,直接触发TypeError。
  • 方法调用逻辑错误:_update_w_b()是类内部用于反向传播阶段更新权重、偏置的方法,需要传入index(层序号)、dw(权重梯度)、delta(层误差项)三个入参,本身不具备返回权重值的功能,不是用来读取权重的接口。
修复步骤
  1. 按类定义要求传入必填参数完成实例化,参考你注释中的网络结构示例,代码如下:
import numpy as np
# 需提前定义/导入依赖的Relu、Sigmoid激活函数,以及createSparseWeights稀疏权重生成方法

# 对应你注释中3312维输入、3层3000神经元隐层、5维输出的网络结构
dimensions = (3312, 3000, 3000, 3000, 5)
activations = (Relu, Relu, Relu, Sigmoid)
model = SET_MLP(dimensions=dimensions, activations=activations)
  1. 直接读取实例属性即可获取存储的权重、偏置值,无需调用更新方法:
# 获取所有层的权重字典(key为层序号,value为对应层的稀疏权重矩阵)
all_weights = model.w
# 获取指定层权重,例如第1层(输入层到第一隐层的权重)
w_layer1 = model.w[1]
# 获取所有层的偏置字典
all_biases = model.b

注意:_update_w_b()仅在训练反向传播过程中使用,调用时必须传齐三个入参,方法无返回值,执行后会直接修改实例内部存储的权重、偏置值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:57:14