When not loading a pretrained model, all layers are initialized with copies of the same weights
Although this repo is mostly used for loading and training pre-trained BERT models, the code does support model initialization too! However, I found an issue with the initialization code - because it just makes one layer and copies it, the weights will be identical across all layers at initialization. This probably isn't fatal, since they'll hopefully diverge over time, but it seems a bit odd and it isn't how the [Google BERT repo does it](https://github.com/google-research/bert/blob/master/modeling.py#L827-L882).

I replaced the copies with separate layer initializations instead, which should fix this problem.
# [Codecov](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742?src=pr&el=h1) Report
> Merging [#742](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/commit/dad3c7a485b7ffc6fd2766f349e6ee845ecc2eee?src=pr&el=desc) will **decrease** coverage by `<.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742/graphs/tree.svg?width=650&token=9qOlN6Hb1c&height=150&src=pr)](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master     #742      +/-   ##
==========================================
- Coverage   62.27%   62.26%   -0.01%     
==========================================
  Files          18       18              
  Lines        3979     3978       -1     
==========================================
- Hits         2478     2477       -1     
  Misses       1501     1501
```


| [Impacted Files](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pytorch\_pretrained\_bert/modeling.py](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742/diff?src=pr&el=tree#diff-cHl0b3JjaF9wcmV0cmFpbmVkX2JlcnQvbW9kZWxpbmcucHk=) | `79.46% <100%> (-0.04%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742?src=pr&el=footer). Last update [dad3c7a...2c03c10](https://codecov.io/gh/huggingface/pytorch-pretrained-BERT/pull/742?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
<|||||>Oops, my bad - I just realized you initialize weights in `BertModel` after creating them. Never mind!