给定张量 rank>=1 T ,我想随机抽样 k 沿0轴均匀输入。
rank>=1
T
k
编辑: 采样应该作为惰性操作作为计算图的一部分,并且应该在每次调用时输出不同的随机项。
例如,给定 T 等级 2 :
2
T = tf.constant( \ [[1,1,1,1,1], [2,2,2,2,2], [3,3,3,3,3], .... [99,99,99,99,99], [100,100,100,100,100]] \ )
用 k=3 ,可能的输出为:
k=3
#output = \ # [[34,34,34,34,34], # [6,6,6,6,6], # [72,72,72,72,72]]
如何在tensorflow中实现这一点?
可以对索引数组使用随机洗牌:
抢先一步 sample_num 索引,并使用它们来选取输入片段。
sample_num
idxs = tf.range(tf.shape(input)[0]) ridxs = tf.random_shuffle(idx)[:sample_num] rinput = tf.gather(input, ridxs)