what's the difference between TFBertOutput and TFBertSelfOutput?
# ❓ Questions & Help

<!-- The GitHub issue tracker is primarly intended for bugs, feature requests,
     new models and benchmarks, and migration questions. For all other questions,
     we direct you to the Hugging Face forum: https://discuss.huggingface.co/ .
     You can also try Stack Overflow (SO) where a whole community of PyTorch and
     Tensorflow enthusiast can help you out. In this case, make sure to tag your
     question with the right deep learning framework as well as the
     huggingface-transformers tag: 
     https://stackoverflow.com/questions/tagged/huggingface-transformers 
     -->

## Details
<!-- Description of your issue -->

<!-- You should first ask your question on the forum or SO, and only if
     you didn't get an answer ask it here on GitHub. -->

`TFBertOutput` with `TFBertSelfOutput` seem same in their codes. why did you write two same layers? is there for some reasons?
Hey @policeme, fair point they seem to be exactly the same. There is a logical difference though `TFBertOutput` is the output of a `TFBertLayer` while `TFBertSelfOutput` is the output a `TFBertAtteniton` (Self-attention -> thus "SelfOutput"). 
But yeah this might seem a bit confusing at first.