2017-06-01 1 views
0

Étant donnéL'ajout d'une diffusion de dimension?

a = tf.constant([[1, 2, 3], [10, 20, 30], [100, 200, 300], [1000, 2000, 3000]]) 

toutes les conditions suivantes sont équivalentes

b = tf.constant([100000, 200000, 300000]) 
print((a+b).eval()) 

bb = tf.constant([[100000, 200000, 300000]]) 
print((a+bb).eval()) 

bbb = tf.constant([[100000, 200000, 300000], [100000, 200000, 300000], [100000, 200000, 300000], [100000, 200000, 300000]]) 
print((a+bbb).eval()) 

et produire

[[100001 200002 300003] 
[100010 200020 300030] 
[100100 200200 300300] 
[101000 202000 303000]] 

Je comprends que bb est "diffusion" à la valeur correspondant à bbb par tf.add (ici +). Est-ce l'ajout d'une dimension qui transforme b à la valeur de bbb toute la diffusion, ou est-ce autre chose?

+0

Avez-vous lu [this] (https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html)? Je ne comprends pas vraiment votre question – martianwars

+0

@martianwars: Je pense que je vois. Ceci est 'b' est également diffusé:" Les tableaux n'ont pas besoin d'avoir le même nombre de dimensions. " La dimension extérieure correspondante peut être ajoutée et jusqu'à la diffusion. (Je vais prendre cela ou quelque chose comme ça comme une réponse.) – orome

Répondre

0

Comme vous l'avez mentionné dans les commentaires, b, bb sont les deux formes de diffusion valides. Comme il est mentionné dans le numpydocumentation,

Les tableaux ne pas besoin d'avoir le même nombre de dimensions.