(src, dst)
| 25 | dst.data = src.data |
| 26 | |
| 27 | def copy_layer_norm(src, dst): |
| 28 | src_ln = [] |
| 29 | for k, v in src.named_parameters(): |
| 30 | if 'norm' in k.lower() and type(v) is not torch.nn.Identity(): |
| 31 | src_ln.append((k, v)) |
| 32 | dst_ln = [] |
| 33 | for k, v in dst.named_parameters(): |
| 34 | if 'layernorm' in k.lower(): |
| 35 | dst_ln.append((k, v)) |
| 36 | assert len(src_ln) == len(dst_ln) |
| 37 | for kvs, kvd in zip(src_ln, dst_ln): |
| 38 | assert kvd[1].data.shape == kvs[1].data.shape |
| 39 | kvd[1].data = kvs[1].data |
| 40 | assert (kvd[1].data == kvs[1].data).all() |
| 41 | |
| 42 | def copy_transformer_layer_wo_ln(src, dst): |
| 43 | new_weight = src.attn.qkv.weight.data |
no test coverage detected