DeepCTR
DeepCTR copied to clipboard
在deepctr/models/din.py中,第86-88行,输入只有query,keys,为什么没有keys_length,或者keys_length怎么计算得到的
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是怎么得到的,源码没看懂
mask是根据embedding层的输入得到的,embedding层输入0的话就代表这个元素是需要被后续层mask
同问,为什么没有显示传参mask,但是可以正常使用? 请问mask是在哪传参的?
同问 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怎么得出来的?程序竟然还没报错
同问
可以看下官方文档,keras 如果指明 self.supports_masking = True 会自动把前一步计算的 mask 矩阵传进来