我有一個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])])',我認爲他們在某些方面做着同樣的事情。無論如何,謝謝你的親切幫助:)。 –