[fix] VisualBERT returns attention tuple #1036 #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PROBLEM: The default value of output_attentions in forward( ) call of BertEncoderJit (
in mmf/modules/hf_layers.py
) is set as False. So even if the user/developer specifiesoutput_attentions = True
in config; its value is taken as default False and thus VisualBERT returns an empty tuple for attentions.FIX: Set
output_attentions as None
in BertEncoderJit's forward( ) definition, and update output_attentions to self.output_attentions if it is not passed as an argument (i.e it is None). Therefore, now output_attentions will take the value of self.output_attentions (which was initialized using config during instantiation of BertEncoderJit class)The issue with
output_hidden_states
was the same, and it was fixed in a similar way.Tested locally.