tf.gather

介绍

根据索引,从指定矩阵中找出元素

语法

根据indices从params的指定轴axis索引元素(类似于仅能在指定轴进行一维索引)

tf.gather(
    params,
    indices,
    validate_indices=None,
    axis=None,
    batch_dims=0,
    name=None
)
参数:
  • params:从该参数中收集值。至少 axis + 1。
  • indices:索引。int32 或 int64。范围是 [0, params.shape[axis])
  • validate_indices:不推荐使用,不执行任何操作。
  • axis:int32 或 int64。params中的axis(轴),必须大于或等于batch_dims 。默认为第一个非批量尺寸。支持负索引
  • batch_dims:整数。批次尺寸的数量。必须小于或等于 rank(indices)
返回

维度: params.shape[:axis] + indices.shape + params.shape[axis + 1:]

例子

arr=np.arange(18).reshape(6,3)
print(arr)

indices=np.array([2,0])
print(indices)

res=tf.gather(arr,indices)
print("-"*50)
print(res)

执行结果:

[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]
 [12 13 14]
 [15 16 17]]
[0 2]
--------------------------------------------------
tf.Tensor(
[[6 7 8]
 [0 1 2]], shape=(2, 3), dtype=int64)

原文出处:/show_1EF5all8g9O0.html