tf.gather用法

tf.gather(params, indices, validate_indices=None, name=None, axis=0)
Gather slices from params axis axis according to indices.
从’params"中,按照axis坐标和indices标注的元素下标,把这些元素抽取出来组成新的tensor.
测试代码:

    import tensorflow as tf
    import numpy as np
    print("\n先测试一维张量\n")
    t=np.random.randint(1,10,5)
    g1=tf.gather(t,[2,1,4])
    sess=tf.Session()
    print(t)
    print(sess.run(g1))
    print("\n再测试二维张量\n")
    t=np.random.randint(1,10,[4,5])
    g2=tf.gather(t,[1,2,2],axis=0)
    g3=tf.gather(t,[1,2,2],axis=1)
    print(t)
    print(sess.run(g2))
    print(sess.run(g3))

结果如下:

先测试一维张量
[7 4 7 1 3]
[7 4 3]
再测试二维张量
[[5 5 7 4 3]
 [8 7 6 5 2]
 [6 9 4 4 8]
 [7 3 3 2 2]]
[[8 7 6 5 2]
 [6 9 4 4 8]
 [6 9 4 4 8]]
[[5 7 7]
 [7 6 6]
 [9 4 4]
 [3 3 3]]
当然可以!`tf.gather` 是 TensorFlow 中的一个函数,它用于根据指定的索引从一个张量中收集(或提取)元素。这个函数在处理稀疏数据、从查找表中获取值或者重新排列张量的维度时非常有用。 `tf.gather` 的基本定义如下: ``` python tf.gather( params, indices, validate_indices=None, axis=None, batch_dims=0, name=None ) ``` 参数解释: - `params`:一个张量,从中收集元素。 - `indices`:一个整数张量,表示要收集的元素的索引。 - `validate_indices`(可选):布尔值,用于检查索引是否越界。默认为 `None`,表示不进行检查。 - `axis`(可选):指定沿哪个轴收集元素。默认为 0。 - `batch_dims`(可选):整数,表示在收集操作之前,`params` 和 `indices` 张量的批处理维度。默认为 0。 - `name`(可选):操作的名称。 `tf.gather` 的返回值是一个新的张量,其中包含从 `params` 中收集的元素。 下面是一个简单的例子: ``` python import tensorflow as tf # 创建一个张量 params = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 指定要收集的元素的索引 indices = tf.constant([0, 2]) # 使用 tf.gather 收集元素 result = tf.gather(params, indices, axis=1) # 输出结果 print(result) ``` 输出: ``` tf.Tensor( [[1 3] [4 6] [7 9]], shape=(3, 2), dtype=int32) ``` 在这个例子中,我们沿着第 1 轴(列方向)从 `params` 张量中收集了索引为 0 和 2 的元素。
04-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值