tensorflow中tf.slice和tf.gather切片函数的使用

yipeiwu_com6年前Python基础

tf.slice(input_, begin, size, name=None):按照指定的下标范围抽取连续区域的子集

tf.gather(params, indices, validate_indices=None, name=None):按照指定的下标集合从axis=0中抽取子集,适合抽取不连续区域的子集

输出:

input = [[[1, 1, 1], [2, 2, 2]],
   [[3, 3, 3], [4, 4, 4]],
   [[5, 5, 5], [6, 6, 6]]]
tf.slice(input, [1, 0, 0], [1, 1, 3]) ==> [[[3, 3, 3]]]
tf.slice(input, [1, 0, 0], [1, 2, 3]) ==> [[[3, 3, 3],
           [4, 4, 4]]]
tf.slice(input, [1, 0, 0], [2, 1, 3]) ==> [[[3, 3, 3]],
           [[5, 5, 5]]]
           
tf.gather(input, [0, 2]) ==> [[[1, 1, 1], [2, 2, 2]],
        [[5, 5, 5], [6, 6, 6]]]

假设我们要从input中抽取[[[3, 3, 3]]],这个输出在inputaxis=0的下标是1,axis=1的下标是0,axis=2的下标是0-2,所以begin=[1,0,0],size=[1,1,3]。

假设我们要从input中抽取[[[3, 3, 3], [4, 4, 4]]],这个输出在inputaxis=0的下标是1,axis=1的下标是0-1,axis=2的下标是0-2,所以begin=[1,0,0],size=[1,2,3]。

假设我们要从input中抽取[[[3, 3, 3], [5, 5, 5]]],这个输出在inputaxis=0的下标是1-2,axis=1的下标是0,axis=2的下标是0-2,所以begin=[1,0,0],size=[2,1,3]。

假设我们要从input中抽取[[[1, 1, 1], [2, 2, 2]],[[5, 5, 5], [6, 6, 6]]],这个输出在input的axis=0的下标是[0, 2],不连续,可以用tf.gather抽取。input[0]和input[2]

以上这篇tensorflow中tf.slice和tf.gather切片函数的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python3.5 Json与pickle实现数据序列化与反序列化操作示例

Python3.5 Json与pickle实现数据序列化与反序列化操作示例

本文实例讲述了Python3.5 Json与pickle实现数据序列化与反序列化操作。分享给大家供大家参考,具体如下: 1、Json:不同语言之间进行数据交互。 (1)JSON数据序列化...

Python使用poplib模块和smtplib模块收发电子邮件的教程

poplib模块接收邮件 python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步。 POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个...

Python标准库itertools的使用方法

Python标准库itertools模块介绍 itertools是python内置的模块,使用简单且功能强大,这里尝试汇总整理下,并提供简单应用示例;如果还不能满足你的要求,欢迎加入...

解决python中使用PYQT时中文乱码问题

如题,解决Python中用PyQt时中文乱码问题的解决方法: 在中文字符串前面加上u,如u'你好,世界',其他网上的方法没有多去探究,Python的版本也会影响解决方法,故这里只推荐这种...

Python实现随机选择元素功能

Python实现随机选择元素功能

如果要从序列中随机挑选元素,我们可以使用random模块的random.choice()方法: 如果想要取出N个元素,将选出的元素一处以做进一步的考察,可以使用random.sampl...