TensorFlow中矩阵和向量的高效逐元素乘法
python
tensor
tensorflow
7
0

什么是乘以(元素方式)二维张量(矩阵)的最有效方法:

x11 x12 .. x1N
...
xM1 xM2 .. xMN

通过垂直向量:

w1
...
wN

获得一个新的矩阵:

x11*w1 x12*w2 ... x1N*wN
...
xM1*w1 xM2*w2 ... xMN*wN

为了给出一些背景,我们可以批量处理M数据样本,并且可以并行处理这些样本,并且每个N元素样本都必须乘以存储在变量中的权重w ,以最终为每行i选择最大的Xij*wj

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

最简单的代码取决于tf.multiply() * 的广播行为 ,该行为基于numpy的广播行为

x = tf.constant(5.0, shape=[5, 6])
w = tf.constant([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
xw = tf.multiply(x, w)
max_in_rows = tf.reduce_max(xw, 1)

sess = tf.Session()
print sess.run(xw)
# ==> [[0.0, 5.0, 10.0, 15.0, 20.0, 25.0],
#      [0.0, 5.0, 10.0, 15.0, 20.0, 25.0],
#      [0.0, 5.0, 10.0, 15.0, 20.0, 25.0],
#      [0.0, 5.0, 10.0, 15.0, 20.0, 25.0],
#      [0.0, 5.0, 10.0, 15.0, 20.0, 25.0]]

print sess.run(max_in_rows)
# ==> [25.0, 25.0, 25.0, 25.0, 25.0]

*在旧版本的TensorFlow中, tf.multiply()称为tf.mul() 。您也可以使用*运算符(即xw = x * w )执行相同的操作。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号