Ich habe einen 2-D-Tensor:Wie extrahiert man n 1-D Tensoren aus einem gegebenen 2-D Tensor?
a = [[6, 5, 4], [3, 2, 1], [1, 2, 3], [4, 5, 6] [7, 8, 1], [5, 2, 6]]
ich möchte zufälligund keine Wiederholung K 1-D Tensoren extrahieren. Als nächstes wird sie in einer anderen 2-D-Tensor b Kombination:
b = [5, 2, 6], [3, 2, 1], [6, 5, 4]
I keine Funktionen finden dies zu tun, so realisiere ich es als Gebrüll:
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
aber das Ergebnis hat sich wiederholende 1-D-Tensor wie:
bb = [[5, 2, 6] , [3, 2, 1], [5, 2, 6]]
Könnte bitte jemand mir helfen, das zu beheben?
Nicht sicher, ob dies mit tensorflow funktionieren würde , aber mit NumPy-Arrays könnte es implementiert werden mit: 'a [np.random.choice (a.shape [0], 3, replace = False)]'. – Divakar
Dies funktioniert nicht in Tensorflow, aber ich habe beschlossen, dies zu versuchen: 'a_shuffled = tf.random_shuffle (a, Samen = 12), b = tf.slice (a_shuffled, [0, 0], [K, len (a [0])]) ', ich denke, sie machen das gleiche bis zu einem gewissen Punkt. Wie auch immer, danke für deine freundliche Hilfe :). –