介绍
根据索引,从指定矩阵中找出元素
语法
根据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)