Tensorflow 中的 numpy 随机选择

新手上路,请多包涵

Tensorflow 中是否有与 numpy 随机选择等效的函数。在 numpy 中,我们可以从给定的列表中随机获取一个项目及其权重。

  np.random.choice([1,2,3,5], 1, p=[0.1, 0, 0.3, 0.6, 0])

此代码将从给定列表中选择一个具有 p 权重的项目。

原文由 seleucia 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 449
2 个回答

不,但您可以使用 tf.multinomial 获得相同的结果:

 elems = tf.convert_to_tensor([1,2,3,5])
samples = tf.multinomial(tf.log([[1, 0, 0.3, 0.6]]), 1) # note log-prob
elems[tf.cast(samples[0][0], tf.int32)].eval()
Out: 1
elems[tf.cast(samples[0][0], tf.int32)].eval()
Out: 5

[0][0] 部分在这里,因为 multinomial 期望批处理中每个元素的一行非标准化对数概率,并且还有另一个维度的样本数。

原文由 sygi 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题