tf.split(),tf.strided_slice(), tf.slice()

tf.split(): 有两种切割方式
https://blog.csdn.net/SangrealLilith/article/details/80272346
tf.slice():
https://www.jianshu.com/p/71e6ef6c121b
tf.strided_slice函数:
https://blog.csdn.net/banana1006034246/article/details/75092388 note:该贴很赞
https://blog.csdn.net/a13602955218/article/details/81254684

tf.split(): 分成几瓣,每一瓣为一个列表,并共同组成一个list返回.
tf.strided_slice():

tf.stride_slice(data, begin, end)
tf.slice(data, begin, end)
两者都是用于切割矩阵,不同点在于slice的end索引是闭区间,stride_slice的end索引是开区间,所以一个截掉最后一列的小技巧是用stride_slice(data, [0, 0], [rows, -1]),但是如果是用slice(data, [0, 0], [rows, -1])则仍是原矩阵。
注意begin和end不是一个常数,而是一个数组,
例如对于矩阵[1,2,3,4,5],截取前三个,应该用tf.slice(data,[0],[2])
对于
[[1,2,3],
[4,5,6],
[7,8,9]]
截取1,2,4,5,应该用tf.slice(data,[0,0],[1,1])

tf.slice():切出一片
1,函数原型 tf.slice(inputs,begin,size,name=’’)
2,用途:从inputs中抽取部分内容

 inputs:可以是list,array,tensor

 begin:n维列表,begin[i] 表示从inputs中第i维抽取数据时,相对0的起始偏移量,也就是从第i维的begin[i]开始抽取数据

 size:n维列表,size[i]表示要抽取的第i维元素的数目

 有几个关系式如下:

     (1) i in [0,n]

     (2)tf.shape(inputs)[0]=len(begin)=len(size)

     (3)begin[i]>=0   抽取第i维元素的起始位置要大于等于0

     (4)begin[i]+size[i]<=tf.shape(inputs)[i]

tf.split(dimension, num_split, input):dimension的意思就是输入张量的哪一个维度,如果是0就表示对第0维度进行切割。num_split就是切割的数量,如果是2就表示输入张量被切成2份,每一份是一个列表。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值