首页 > 其他 > 详细

『TensorFlow』高级高维切片gather_nd

时间:2018-10-19 23:30:25      阅读:453      评论:0      收藏:0      [点我收藏+]

gather用于高级切片,有关官方文档的介绍,关于维度的说明很是费解,示例也不太直观,这里给出我的解读,示例见下面,

    indices = [[0, 0], [1, 1]]
    params = [[‘a‘, ‘b‘], [‘c‘, ‘d‘]]
    output = [‘a‘, ‘d‘]

    indices = [[[0, 0]], [[0, 1]]]
    params = [[‘a‘, ‘b‘], [‘c‘, ‘d‘]]
    output = [[‘a‘], [‘b‘]]

我们两次被索引对象是相同的:[2, 2]形状,而indice的形状各不相同,按照官网的算法计算输出很不直观,按照我的理解,我们由最后一维度向外看indices即可,即[0, 0]索引到‘a‘[1, 1]索引到‘b‘,然后我们使用索引到的对象替换掉最后一维度的索引即可,例如,对于[[0, 0], [1, 1]],替换掉[0, 0][1, 1]后,即为[‘a‘, ‘d‘],而[[[0, 0]], [[0, 1]]]替换后保留了外层两个维度:[[‘a‘], [‘b‘]]
我们看官网另一个例子,对应[0, 0, 1]获得‘b0‘[1, 0, 1]获得‘b1‘……,简单替换即可。

    indices = [[[0, 0, 1], [1, 0, 1]], [[0, 1, 1], [1, 1, 0]]]
    params = [[[‘a0‘, ‘b0‘], [‘c0‘, ‘d0‘]],
           [[‘a1‘, ‘b1‘], [‘c1‘, ‘d1‘]]]
    output = [[‘b0‘, ‘b1‘], [‘d0‘, ‘c1‘]]

 

 

『TensorFlow』高级高维切片gather_nd

原文:https://www.cnblogs.com/hellcat/p/9819697.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!