Tensorflow 中 RNN softmax输出层采样 tf.multinomial(logits, num_samples)

来源:互联网 发布:json 双引号 编辑:程序博客网 时间:2024/04/28 23:49

Tensorflow 中,想要使用sequence to sequence 模型,在RNN的输出端采样(sampling),可以在softmax层之后,做简单的log p 再用tf.multinomial()来实现:

tf.multinomial(logits, num_samples, seed=None, name=None)
例如:

# samples has shape [1, 5], where each value is either 0 or 1 with equal# probability.samples = tf.multinomial(tf.log([[10., 10.]]), 5)

Args:

  • logits: 2-D Tensor with shape [batch_size, num_classes]. Each slice [i, :] represents the unnormalized log probabilities for all classes.
  • num_samples: 0-D. Number of independent samples to draw for each row slice.
  • seed: A Python integer. Used to create a random seed for the distribution. See tf.set_random_seed for behavior.
  • name: Optional name for the operation.

Returns:

The drawn samples of shape [batch_size, num_samples].

Defined in tensorflow/python/ops/random_ops.py.


0 1