急切执行的 Tensorflow 多项式分布

Tensorflow multinomial distribution with eager execution

我来自这个tutorial,它根据来自我们的 RNN 的预测张量,在急切执行中使用多项式分布来获得对文本生成的下一个字符的最终预测。

# using a multinomial distribution to predict the character returned by the model
temperature = 0.5
predictions = predictions / temperature
predicted_id = tf.multinomial(predictions, num_samples=1)[-1,0].numpy()

我的问题是:

  1. 温度(这里是0.5)不只是缩放所有预测吗,为什么它会影响多项式选择?

    [0.2,0.4,0.3,0.1]/温度=[0.4,0.8,0.6,0.2]

    多项式不是对概率进行归一化吗?因此,在缩放时,我们只是增加每个字符的概率,限制为 1?

  2. [-1, 0].numpy() 有什么作用?我完全迷失了这个。

如有任何提示,我们将不胜感激。

  1. [i, :] 表示所有 类 的 非标准化对数概率

因此,首先概率越小,温度小于1的概率越小。温度大于1的概率越大:

math.exp(0.4)/math.exp(0.8) = 0.670
math.exp(0.3)/ math.exp(0.6) = 0.7408
math.exp(0.2)/ math.exp(0.4) = 0.818
math.exp(0.1)/ math.exp(0.2) = 0.9048
  1. [-1, 0].numpy()只是得到多项式张量的

如:

tf.multinomial(predictions, num_samples=1)
tf.Tensor([[3]], shape=(1, 1), dtype=int64)
to 3