如何在MXNet中使用channel Dropout (Dropout2d)

MXNet中使用channel Dropout方法
本文介绍了如何在MXNet中使用channel Dropout,即Dropout2d功能。在Pytorch中有torch.nn.Dropout2d直接实现,但在MXNet中实现此功能较为复杂。尽管MXNet的Dropout模块不直接支持,但通过设置特定参数可以达到目的。在4维输入(NxCxHxW)的情况下,使用mx.sym.Dropout并正确配置参数,能够实现通道维度的Dropout效果。通过多次执行forward函数,可以验证该方法的有效性。

在很多实际使用场景下,特别是语义分割等输出像素级预测结果的全卷积神经网络中,经常会使用到随机drop特征图维度的操作。在Pytorch中,可以直接使用torch.nn.Dropout2d实现相应功能。然而在MXNet中可能略显麻烦。

查阅MXNet文档并不能直接找到所需的信息,因为Dropout模块被定义为了最基础版本的、随机drop数组中任意元素的功能。唯一可能与需求相关的参数’axes’,其定义过于晦涩,无法理解。
在这里插入图片描述

而在更加“友好”的Gluon文档中,对应模块的解释仍然令人费解。简单查阅文档后仍不知道如何设置该参数。
在这里插入图片描述

为了实现drop某个channel的功能,当输入特征为4维的时候(NxCxHxW),mx.sym.Dropout应该这样使用:

import mxnet as mx
import numpy as np
a=np.array([1,2,3,4,5,6
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值