gpt4 book ai didi

python - 对 3D 张量行进行广播操作 (Tensorflow)

转载 作者:行者123 更新时间:2023-12-01 09:29:54 26 4
gpt4 key购买 nike

我有一个维度为 [BATCH_SIZE, 128] 的张量 p,以及维度为 [528, 128] 的张量 A、B。我想构建一个大小为 [BATCH_SIZE, 528] 的新张量 p',其中 j 列定义为:

tf.reduce_prod(self.A[j,:] * p + self.B[j,:], axis=1)

我目前使用 for 循环对此进行了强力实现,但速度非常慢。有什么方法可以使用广播或其他方式来加快速度吗?

ps = []
for j in xrange(self.A.shape[0]):
a = self.A[j,:]
b = self.B[j,:]
ps.append(tf.reduce_prod(a * p + b, axis=1))
p = tf.stack(ps, axis=1)

最佳答案

试试这个:

result = tf.reduce_prod(self.A * p[:, tf.newaxis] + self.B, axis=2)

关于python - 对 3D 张量行进行广播操作 (Tensorflow),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com