1
比方說,我有兩個張量a
和b
具有相同的形狀。我想按照b
中指定的次數重複a
的元素。我如何在Tensorflow中實現這一點?Tensorflow用數字在另一張量,類似的重複張量numpy.repeat
在numpy的我會用np.repeat
:
import numpy as np
a = np.array([0.5,0.1,0.15,0.25])
b = np.array([100,50,200,10])
c = np.repeat(a, b)
如何做到這一點的tensorflow?
一個非常(很髒並且效率可能很低)的解決方法是將這兩個解決方案都卸載到列表中,然後在每個元素上使用tf.tile
,然後使用concat
結果。我設法讓這樣的工作:
a = tf.constant([0.5,0.1,0.15,0.25])
b = tf.constant([3,1,5,2])
a_list = tf.unstack(a)
b_list = tf.unstack(b)
result = []
for i in range(len(a_list)):
tmp = tf.tile([a_list[i]], [b_list[i]])
result.append(tmp)
final = tf.concat([*result], axis=0)
結果:
final.eval()
Out:
array([ 0.5 , 0.5 , 0.5 , 0.5 , 0.1 ,
0.15000001, 0.15000001, 0.15000001, 0.25 , 0.25 ], dtype=float32)
是不是有什麼更好的辦法?
@Psidom當你要重複了''在恆定的次數回答的作品。我想要的是基於另一個張量「b」中元素的值重複「a」的元素。 – CentAu
你說得對。我現在看到它。 – Psidom