TensorFlow broadcasting

拜拜、爱过 提交于 2019-12-01 07:32:45

问题


Broadcasting is the process of making arrays with different shapes have compatible shapes for arithmetic operations. In numpy, we can broadcast arrays. Does TensorFlow graph support broadcasting similar to the numpy one?


回答1:


yes it is supported. Open a terminal and try this:

import tensorflow as tf

#define tensors
a=tf.constant([[10,20],[30,40]]) #Dimension 2X2
b=tf.constant([5])
c=tf.constant([2,2])
d=tf.constant([[3],[3]])

sess=tf.Session() #start a session

#Run tensors to generate arrays
mat,scalar,one_d,two_d = sess.run([a,b,c,d])

#broadcast multiplication with scalar
sess.run(tf.multiply(mat,scalar))

#broadcast multiplication with 1_D array (Dimension 1X2)
sess.run(tf.multiply(mat,one_d))

#broadcast multiply 2_d array (Dimension 2X1)
sess.run(tf.multiply(mat,two_d))

sess.close()



回答2:


The short answer is yes.

c.f. Tensorflow Math doc

Note: Elementwise binary operations in TensorFlow follow numpy-style broadcasting.

c.f. tf.add() doc, or tf.multiply() doc, etc.:

NOTE: [the operation] supports broadcasting. More about broadcasting here



来源:https://stackoverflow.com/questions/49977236/tensorflow-broadcasting

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!