Thank you for your answers and your note.
So if I understand correctly, this should be the way:
class MyModule(nn.Module):

    def __init__(self, weights):
        super(MyModule, self).__init__()

        self.linear = nn.Linear(weights.shape[1], weights.shape[0])
        with torch.no_grad():
            self.linear.weight = torch.tensor(weights) # nn.Parameter(...) ?

Is this enough to update the weights with gradients later or should I enforce with nn.Parameter ?