对modules()中的参数的进行初始化,能够加速模型的收敛

原文地址
是来对相应的参数的初始化的过程的。进行参数的初始化是会来加快模型收敛速度的。
先从self.modules()中遍历每一层,然后判断更层属于什么类型,是否是Conv2d,
是否是BatchNorm2d,是否是Linear的,然后根据不同类型的层,设定不同的权值初始化方法

        for m in self.modules():  ## 依次来返回模型中的各个层的
            if isinstance(m, nn.Conv2d):  ## 判断是否是相同的实例对象的。
                n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
                m.weight.data.normal_(0, math.sqrt(2. / n))  ## m.weight.data是对应的卷积核参数
            elif isinstance(m, nn.BatchNorm2d):
                m.weight.data.fill_(1)    ## 对全部的权重初始化为1
                m.bias.data.zero_()   ## 这里是来对权重进行初始化为0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值