TensorFlow广播

时间:2018-04-23 09:09:21

标签: python tensorflow numpy-broadcasting

广播是使具有不同形状的数组具有用于算术运算的兼容形状的过程。在numpy中,我们可以广播数组。 TensorFlow图是否支持类似于numpy的广播?

2 个答案:

答案 0 :(得分:1)

简短的回答是肯定的。

c.f。 Tensorflow Math doc

  

注意:TensorFlow中的元素二进制运算遵循numpy-style broadcasting

c.f。 enable=true, url=http://localhost:8580/auth, tokenPath=/realms/cdi/protocol/openid-connect/token, tokenSentVia=Header, identityTokenSentVia=Header, identityPath=/realms/cdi/protocol/openid-connect/userinfo, authorizePath=/realms/cdi/protocol/openid-connect/auth, scope=openid, id=rocket, loginStyle=redirect, usernameField=preferred_username doctf.add() doc等等:

  

注意:[操作]支持广播。有关广播here

的更多信息

答案 1 :(得分:1)

是的,它是受支持的。打开终端试试这个:

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()