gpt4 book ai didi

tensorflow - 如何移动张量中的值

转载 作者:行者123 更新时间:2023-12-05 08:08:33 24 4
gpt4 key购买 nike

我有带值的形状 [batch_size, A] 的张量 T 和带移位参数的形状 [batch_size] 的张量 S。

我想将 T[b] 中的值向右移动 S[b] 个位置,应删除 T[b] 的最后一个 S[b] 元素,并将新元素设置为 0。

所以基本上想做这样的事情:

for i in range(batch_size):
T[i] = zeros[:S[i]] + T[i, :A-S[i]]

例子:

For:
T = [[1, 2, 3], [4, 5, 6]]
S = [1, 2]

Return:
T' = [[0, 1, 2], [0, 0, 4]]

有什么简单的方法吗?

最佳答案

您可以为此目的使用 tf.concat 和 tf.stack:

T_shift = tf.zeros((batch_size, A), tf.float32)
tmp = []

for i in xrange(batch_size):
tmp.append(tf.concat([T_shift[i, :S[i, 0]],T[i, :17 - S[i,0]]], axis = 0))
T_shift = tf.stack(tmp)

关于tensorflow - 如何移动张量中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48215077/

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