DeepCTR icon indicating copy to clipboard operation
DeepCTR copied to clipboard

在deepctr/models/din.py中,第86-88行,输入只有query,keys,为什么没有keys_length,或者keys_length怎么计算得到的

Open wuyunxiangwyx opened this issue 5 years ago • 5 comments

hist = AttentionSequencePoolingLayer(att_hidden_size, att_activation,
                                     weight_normalization=att_weight_normalization, supports_masking=True)([
    query_emb, keys_emb])

其中 def call(self, inputs, mask=None, training=None, **kwargs) 请问mask是怎么得到的,源码没看懂

wuyunxiangwyx avatar Feb 18 '20 08:02 wuyunxiangwyx

mask是根据embedding层的输入得到的,embedding层输入0的话就代表这个元素是需要被后续层mask

shenweichen avatar Feb 23 '20 07:02 shenweichen

同问,为什么没有显示传参mask,但是可以正常使用? 请问mask是在哪传参的?

codefish1990 avatar Nov 02 '20 10:11 codefish1990

同问 def call(self, inputs, mask=None, training=None, **kwargs):

    if self.supports_masking:
        if mask is None:
            raise ValueError(
                "When supports_masking=True,input must support masking")
        queries, keys = inputs
        key_masks = tf.expand_dims(mask[-1], axis=1)

key_masks怎么得出来的?程序竟然还没报错

ninesky110 avatar Dec 10 '20 09:12 ninesky110

同问

luckmoon avatar May 09 '21 04:05 luckmoon

可以看下官方文档,keras 如果指明 self.supports_masking = True 会自动把前一步计算的 mask 矩阵传进来

yunchenran avatar Feb 11 '22 01:02 yunchenran