沿任意轴相乘?

Shi*_*ite 6 python tensorflow

如果我有一个具有 shape 的层[batch_size, height, width, depth]和另一个shape张量的输出,[depth]我如何将第一个张量乘以第二个,使得沿depth方向的每个切片都乘以第二个张量中的相应值。也就是说,如果第二张量是[4, 5, 6],那么乘法是:

tensor1[:, :, :, 0] * 4
tensor1[:, :, :, 1] * 5
tensor1[:, :, :, 2] * 6
Run Code Online (Sandbox Code Playgroud)

另外,有没有我不知道要搜索的这种乘法的名称?谢谢!

rvi*_*nas 7

这很简单。只需将两个张量相乘即可。例如:

import tensorflow as tf

tensor = tf.Variable(tf.ones([2, 2, 2, 3]))
depth = tf.constant([4, 5, 6], dtype=tf.float32)
result = tensor * depth

sess = tf.Session()
sess.run(tf.initialize_all_variables())
print(sess.run(result))
Run Code Online (Sandbox Code Playgroud)

  • 为了确保正确的轴用于乘法,您可以将 `depth` 重塑为 `[1, 1, 1, 3]`。(你也可以使用`tf.expand_dims()`) (2认同)