多层感知机的简洁实现

现在还是在用cpu训练,要使用gpu的话需要把模型等to devices(cuda)

我也遇到了。从实验结果看,使用uniform必须保持区间对称,[-1,0]、[0,1]、[-2,1]、[-1,2]都会遇到梯度消失的问题,原因不清楚。

请问这么设置区间,背后的原理或者说原因是什么呢?

在使用uniform分布初始化线性层权重时遇到个问题——如果分布区间关于y轴不对称,模型就会因为梯度消失而无法正常工作,具体结果如下,同时也尝试了类似[-2,1]、[-1,2]等更多的非对称区间,无一例外。
有哪位同学能解释一下原理吗?先行谢过 :heart_hands:

a=-1, b=1
image-20250121180447519

a=0, b=1
image-20250121181134541

a=-1, b=0
image-20250121181329589