If you want the same seed for every embedding then you do need to do random seed before each embedding since the random seed changes over time.
>>> torch.manual_seed(5)
>>> torch.nn.Embedding(3,2)(torch.autograd.Variable(torch.LongTensor([0,1,2])))
Variable containing:
-0.4868 -0.6038
-0.5581  0.6675
-0.1974  1.9428
[torch.FloatTensor of size 3x2]

>>> torch.nn.Embedding(3,2)(torch.autograd.Variable(torch.LongTensor([0,1,2])))
Variable containing:
-1.4017 -0.7626
 0.6312 -0.8991
-0.5578  0.6907
[torch.FloatTensor of size 3x2]

These don’t output the same since the seed changes overtime during the execution of the program. But it you run the program again with the same seed you will get the exact same output for each tensor respectively.
Now if you to want to have the same output during the whole execution of the program using the same seed then you need to instantiate the embedding like on @SimonW reply. Like so:
>>> torch.manual_seed(5)
>>> a = torch.nn.Embedding(3,2)
>>> a(torch.autograd.Variable(torch.LongTensor([0,1,2])))
Variable containing:
-0.4868 -0.6038
-0.5581  0.6675
-0.1974  1.9428
[torch.FloatTensor of size 3x2]

>>> a(torch.autograd.Variable(torch.LongTensor([0,1,2])))
Variable containing:
-0.4868 -0.6038
-0.5581  0.6675
-0.1974  1.9428
[torch.FloatTensor of size 3x2]

Although I do not know what the purpose of doing the first option will be.