Python 当维度不';不匹配

Python 当维度不';不匹配,python,tensorflow,Python,Tensorflow,我有两个张量,一个是形状[None,20,2],一个是形状[None,1]。 我想在lockstep中对每个子张量做一个运算,以产生一个值,这样我将得到一个形状为[None,1]的张量 在pythonland中,我将压缩这两个,并迭代结果 所以,我想写一个函数,取[20,2]形张量和[1]形张量,生成一个[1]形张量,然后将这个函数应用于[None,20,2]和[None,1]张量,生成一个[None,1]张量 希望我能很好地表达这一点;更高的维度有时会让我头晕。这对我很有用(TensorFlo

我有两个张量,一个是形状[None,20,2],一个是形状[None,1]。 我想在lockstep中对每个子张量做一个运算,以产生一个值,这样我将得到一个形状为[None,1]的张量

在pythonland中,我将压缩这两个,并迭代结果

所以,我想写一个函数,取[20,2]形张量和[1]形张量,生成一个[1]形张量,然后将这个函数应用于[None,20,2]和[None,1]张量,生成一个[None,1]张量

希望我能很好地表达这一点;更高的维度有时会让我头晕。

这对我很有用(TensorFlow 1.4.0版)

数组([66,211.],dtype=float32)

66 211


固体这正是我想要的,谢谢!
tf.reset_default_graph()
sess = tf.Session()

# Define placeholders with undefined first dimension.
a = tf.placeholder(dtype=tf.float32, shape=[None, 3, 4])
b = tf.placeholder(dtype=tf.float32, shape=[None, 1])

# Create some input data.
a_input = np.arange(24).reshape(2, 3, 4)
b_input = np.arange(2).reshape(2, 1)

# TensorFlow map function.
def f_tf(x):
    return tf.reduce_sum(x[0]) + tf.reduce_sum(x[1])
# Numpy map function (for validation of results).
def f_numpy(x):
    return np.sum(x[0]) + np.sum(x[1])

# Run TensorFlow function.
s = tf.map_fn(f, [a, b], dtype=tf.float32)
sess.run(s, feed_dict={a: a_input, b: b_input})
# Run Numpy function. 
for inp in zip(a_input, b_input):
    print(f_numpy(inp))