Hi! Let’s have a look at the docs:
https://pytorch.org/docs/stable/torch.html#torch.multinomial
First of all, let’s try to reproduce the example:
>>> import torch
>>> weights = torch.tensor([0, 10, 3, 0], dtype=torch.float)
>>> torch.multinomial(weights, 4)
RuntimeError Traceback (most recent call last)
<ipython-input-3-6a53ba27a4e6> in <module>
----> 1 torch.multinomial(weights, 4)
RuntimeError: invalid argument 2: invalid multinomial distribution (with replacement=False, not enough non-negative category to sample) at /pytorch/aten/src/TH/generic/THTensorRandom.cpp:320
- I suppose what is meant by error is “not enough positive category”. Otherwise, it is strange to get
0
in the output if the probability of this element is0.0
. I firstly thought that it is becausereplacement=False
, but there is one more0
in the output which makes the example even more confusing. -
Here it is said that under the hood the function is equivalent to
torch.distributions.Categorical
. The distribution, however, can be parametrized with eitherprobs
orlogits
. How exactly theinput
argument oftorch.multinomial
is treated?
PyTorch’s version: 1.0.1.post2