在 TensorFlow 上添加两个具有不同等级的张量

Adding two Tensors with different ranks on TensorFlow

我尝试在 TensorFlow 上进行以下操作:

import tensorflow as tf

a = tf.Variable(tf.zeros([10,1]))
b = tf.Variable(tf.zeros([10]) )
c = a + b

with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    print sess.run(c)

我预计会出现 "Two Tensors must have the same rank." 这样的错误,但是,输出是一个 10×10 零矩阵。你认为为什么会这样?

因为broadcasting。您有一个水平向量和一个垂直向量,添加后它们会创建一个 10x10 矩阵。同样适用于

import tensorflow as tf

a = tf.Variable(tf.zeros([10, 1]))
b = tf.Variable(tf.zeros([1, 10]) )
c = a + b

with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    print sess.run(c)