(num_pos: int, dim: int)
| 38 | |
| 39 | # Copied from transformers.models.gptj.modeling_gptj.create_sinusoidal_positions |
| 40 | def create_sinusoidal_positions(num_pos: int, dim: int) -> torch.Tensor: |
| 41 | inv_freq = 1.0 / (10000 ** (torch.arange(0, dim, 2) / dim)) |
| 42 | sinusoid_inp = torch.einsum("i , j -> i j", torch.arange(num_pos, dtype=torch.float), inv_freq).float() |
| 43 | return torch.cat((torch.sin(sinusoid_inp), torch.cos(sinusoid_inp)), dim=1) |
| 44 | |
| 45 | |
| 46 | # Copied from transformers.models.gptj.modeling_gptj.rotate_every_two |