赞
踩
当我们处理一些序列任务时,一个batch中输入的序列可能是不等长的,这个时候我们一般会对序列进行padding处理,一般填充值为0,但是这个进而又会导致一些问题。
因为这些存在的问题,所有我们采用mask矩阵来进行处理。
比如一个batch的输入是
[ [1, 2, 3], [1, 2, 3, 4, 5], [-1, -2, -3, -4]]
如上这个batch的seq_length是5,所以要将其他长度不为5的序列进行填充,填充后为:
batch = [ [1, 2, 3, 0, 0], [1, 2, 3, 4, 5], [-1, -2, -3, -4, 0]]
mask数组是用来标记是否是有意义的数值,有意义就是1,填充值就是0,上面这个数组的mask矩阵是:
mask = [[1, 1, 1, 0, 0],[1, 1, 1, 1, 1],[1, 1, 1, 1, 0]]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。