不,但是您可以使用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
期望该批次中每个元素的行都具有未归一化的对数概率,并且对于样本数量还具有另一个维度。
0
Tensorflow中是否有等效于numpy随机选择的函数。在numpy中,我们可以从给定列表中随机获得一个项目及其权重。
该代码将从给定列表中选择一个权重为p的项。