神经网络 mask的作用

神经网络中,mask用于在填充后的句子中屏蔽0值,避免其在计算中产生影响。通过设置Embedding层的mask_zero参数为True,初始化时可以指定0值不参与后续计算。虽然Embedding层自身不使用mask矩阵,但该矩阵会被传递到下一层,如果下层利用mask,它将起作用。在实际应用中,mask常用于屏蔽填充的0值,确保只处理有效数据。
摘要由CSDN通过智能技术生成

     对句子填补之后, 就要输入到Embedding层中, 将token由id转换成对应的vector. 我们希望被填补的0值在后续的计算中不产生影响, 就可以在初始化Embedding层时指定参数mask_zero为True, 意思就是屏蔽0值, 即填补的0值。
     在Embedding层中的compute_mask方法中, 会计算得到mask矩阵. 虽然在Embedding层中不会使用这个mask矩阵, 即0值还是会根据其对应的向量进行查找, 但是这个mask矩阵会被传入到下一层中, 如果下一层, 或之后的层会对mask进行考虑, 那就会起到对应的作用。
     在句子前面或者后面补0. 但是这些零是我们不需要的, 只是为了组成可以计算的结构才填补的. 因此计算过程中, 我们希望用mask的思想, 在计算中, 屏蔽这些填补0值得作用,下面就是我的项目中使用的mask。

 def make_mask(self, feature):
        return (torch.sum(
            torch.
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值