Search code examples
pythontensorflowarray-broadcasting

TensorFlow broadcasting


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?


Solution

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