权重稀疏训练

权重稀疏

作用

增加权重的0个数量,加快推理速度

pytorch权重稀疏训练

通过L1损失来减少神经网络权重, 使得大部分权重接近于0.
注意点: 最后一层和bias层通常不进行稀疏.
原理, 通过每一个权重等系数的减少来进行权重稀疏.

	l1_reg = None
    for i, W in enumerate(network.parameters()):
        if i == 64 or i == 54 or i == 44 or i == 34 or i % 2 == 1:
            continue
        filters1 = W.shape[1]
        filters2 = W.shape[0]
        # 该层权重个数
        reg_power = 9 * filters1 * filters2
        reg_lambda = (1. / reg_power)
        if l1_reg is None:
            l1_reg = reg_lambda * W.norm(p=1)
        else:
            l1_reg = l1_reg + reg_lambda * W.norm(p=1)

    print('l1 loss', l1_reg)

keras 权重稀疏训练

keras 的权重稀疏较为简单,在每一层卷积中添加:
kernel_regularizer=regularizers.l1((1. / filters3) * regularize)
其中 filters3 为通道数, regularize为3的n次方,设定按通道数设置.

x = layers.Conv2D(filters3, (1, 1),
                      kernel_initializer='he_normal',
                      kernel_regularizer=regularizers.l1((1. / filters3) * regularize),
                      dtype=dtype,
                      name=conv_name_base + '2c')(x)

参考文献

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值