【发布时间】:2016-11-02 09:22:27
【问题描述】:
两个张量 x = [a,b,c] y = [d,e,f] 两个 float32 数字 我想得到一个像这样的张量 z = [ad,ae,af,bd,be,bf,cd,ce,cf] 这只是一个简单的例子 真正的张量可能很大
【问题讨论】:
两个张量 x = [a,b,c] y = [d,e,f] 两个 float32 数字 我想得到一个像这样的张量 z = [ad,ae,af,bd,be,bf,cd,ce,cf] 这只是一个简单的例子 真正的张量可能很大
【问题讨论】:
我想您可以将 x 重塑为 (3, 1) 形状,将 y 重塑为 (1, 3) 形状。然后,当您将它们相乘时,它们将广播并为您提供一个可以展平的 (3, 3) 数组。这是一个 numpy 的例子。 Tensorflow 的行为方式完全相同,并且具有等效的功能(除了使用 tf.reshape(z, [-1]) 进行展平,因为 tensorflow 中没有展平。)
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
z = np.expand_dims(x, 1) * np.expand_dims(y, 0)
z = z.flatten()
这给了我array([ 4, 5, 6, 8, 10, 12, 12, 15, 18]) 作为输出。
【讨论】: