我有一个2-d张量:如何从给定的二维张量中提取n个一维张量?
一个= [[6,5,4],[3,2,1],[1,2,3],[4,5,6] ,[7,8,1],[5,2,6]
我想提取K 1-d张量随机和无重复。接着,将它们组合到另一2-d张量B:
B = [5,2,6],[3,2,1],[6,5,4]
我没有找到这样的任何功能,所以作为波纹管实现:
rand_var_1 = tf.random_crop(a, size=[1, 3], seed=1)
rand_var_2 = tf.random_crop(a, size=[1, 3], seed=2)
rand_var_3 = tf.random_crop(a, size=[1, 3], seed=3)
rand_var_4 = tf.random_crop(a, size=[1, 3], seed=4)
b = tf.concat(0, [rand_var_1, rand_var_2, rand_var_3, rand_var_4])
b_rs = sess.run(b)
print "b_rs:\n",b_rs
但结果具有重复1-d张量,如:
BB = [[5,2,6] ,[3,2,1],[5,2,6]]
可以请某人帮我解决这个问题吗?
不知道这是否会与tensorflow工作,但是对于NumPy数组,它可以用'a [np.random.choice(a.shape [0],3,replace = False)]'来实现。 – Divakar
这在tensorflow中不起作用,但我决定试试这个:'a_shuffled = tf.random_shuffle(a,seed = 12),b = tf.slice(a_shuffled,[0,0],[K,len( a [0])])',我认为他们在某些方面做着同样的事情。无论如何,谢谢你的亲切帮助:)。 –