Keras中Mask的傳遞過程

yyliunianyy發表於2020-10-05

keras mask流程,base_layer.py看Layer的實現__call__函式:
上一層的mask傳遞到下一層的過程
1.support_masking=True
當前層的support_masking=True,則說明當前層支援mask。
1)呼叫_collect_previous_mask(inputs)檢視輸入的mask(即上一層的mask)
2)mask作為引數傳入call函式
3)計算輸入的mask,mask為previou_mask
注:Dense支援mask,但只傳遞,並不利用mask計算,可以在call函式中定義操作。Dense有bias,還是會有影響。
2.support_masking=False
1)呼叫_collect_previous_mask(inputs)檢視輸入的mask(即上一層的mask)
2)mask作為引數傳入call函式
3)計算輸入的mask:如果previous_mask為None,則輸出None;如果previous_mask不為None,則報錯:does not support masking, but was passed an input_mask

注:Conv1d不支援Mask,執行過程中也沒有使用Mask,可以例項後將support_masking置為True,起到傳遞Mask的作用。

 

相關文章