tf.multinomial(logits, num_samples)
-
第一个参数logits可以是一个数组,每个元素的值可以简单地理解为对应index的选择概率,注意这里的概率没有规定加起来的和为1。还需要注意的是所有概率不能全为0或全为1。
如果logits数组中有n个概率值,那么最后生成的数都在[0, n-1]之间。假设logits有两个元素,即[0.6,0.5],这表示的意思是取 0 的概率是0.6, 取 1 的概率是0.5。
-
第二个参数num_samples表示抽样的个数。
例如:
tf.multinomial(tf.log([[0.01]]),3)
不管重复运行多少次结果都是 [0,0,0]tf.multinomial(tf.log([[0.1, 0.6]]),3)
结果可能 [0,0,0],也可能是[0,1,1],当然也有其他可能。