gpt4 book ai didi

python - 如何根据 tensorflow 中的索引张量填充值张量?

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

我需要根据索引张量从张量中提取值。
我的代码如下:

arr = tf.constant([10, 11, 12]) # array of values
inds = tf.constant([0, 1, 2]) # indices
res = tf.map_fn(fn=lambda t: arr[t], elems=inds)
它工作缓慢。有没有更有效的方法?

最佳答案

您可以使用 tf.gather 方法

  arr = tf.constant([10, 11, 12]) # array of values
inds = tf.constant([0, 2])

r = tf.gather(arr , inds)#<tf.Tensor: shape=(2,), dtype=int32, numpy=array([10, 12])>
如果您有一个多维张量,则 tf.gather 有一个“轴”参数来指定您检查索引的维度:
arr = tf.constant([[10, 11, 12] ,[1, 2, 3]]) # shape(2,3)
inds = tf.constant([0, 1])
# axis == 1
r = tf.gather(arr , inds , axis = 1)#<tf.Tensor: shape=(2, 2), dtype=int32, numpy=array([[10, 11],[ 1, 2]])>


# axis == 0
r = tf.gather(arr , inds , axis = 0) #<tf.Tensor: shape=(2, 3), dtype=int32, numpy=array([[10, 11, 12], [ 1, 2, 3]])>

关于python - 如何根据 tensorflow 中的索引张量填充值张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64246466/

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