tensorflow中tf.slice和tf.gather切片函数的使用
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切片函数的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。