关于在动态图中使用fluid.layers.sampling_id的疑惑
Created by: dbsxdbsx
- 版本、环境信息: 1)PaddlePaddle版本:1.8.2 cuda7.6 2)系统环境:win10 3)Python版本号: 3.7
with fluid.dygraph.guard():
prob = np.array([[0.1, 0.5, 0.3,0.1],[0.1, 0.5, 0.3,0.1], [0.1, 0.5, 0.3,0.1],[0.1, 0.5, 0.3,0.1]])
prob = fluid.dygraph.base.to_variable(prob)
out = fluid.layers.sampling_id(prob,min=0,max =2,seed=10)
_out = out.numpy()
print(_out)
ii = 5
以上代码输出[3 3 3 3], 但根据理解,batch_size为4,每个分布有4个项,可选[0,1,2,3],再加上min=0,max =2,则最后每个分布的可选项应该在区间[0,2]间,那为何结果是[3 3 3 3]呢?
另,若希望从某个分布取n个样本(而不是1个)要怎么写呢,若没有现成的函数,希望能参考pytorch的multinomial函数仿写一个。