tensorflow、keras对于变长序列的处理方法

转载:https://blog.csdn.net/qq_27825451/article/details/88991529

参考链接:https://blog.csdn.net/songbinxu/article/details/80150019

对于NLP,怎么处理变长序列是基本问题。

问题来源:mask_zero=True是干嘛的?
网上mask_zero的解释少,转载的文章能帮你轻松理解。

总结:Embedding的关键字参数mask_zero=True不会改变Word2vector的结果,即不是讲所有补充的0全部变为0向量,这个很重要,关键字参数mask_zero=True的作用是决定了后面的“循环层”是否会将补充的0单词参与运算,如果设置为True,就是“覆盖掉0”的意思,自然就不参与运算,如果设置为False,就是不覆盖0,0也会参与运算的意思。

补充:既然Word2vector之后的结果根本就不是0向量,那后面循环层在运算的时候怎么会知道哪个是补充的单词0,哪个不是补充的单词0?

事实上,在对每一个单词进行Word2vector的时候,会存在一个单词与向量之间的映射关系在里面,比如
3->[#,#,#]
4->[#,#,#]
5->[#,#,#]
0->[#,#,#]

所以即使向量并不是0向量,但是哪个与单词0对应的向量依然是清楚地,所以只要有这样一个映射关系,循环层在遇到与0相对应的向量时,就“覆盖掉不参与运算”,这就是其中的原理了。后面要介绍的Masking层实际上也是要达到同样的效果,二者异曲同工。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值