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份,每一份是一个列表。