tf.slice()的简单理解
tf.slice(input,begin,size)
其中input是原始数据,begin是从哪里(起点)开始,size是裁剪后想得到的结果的shape也就是每维度的元素个数。
t = tf.constant([[[1, 2, 3], [4, 5, 6]],
[[11, 12, 13], [14, 15, 16]],
[[21, 22, 23], [24, 25, 26]]])
tf.slice(t, [1, 0, 0], [1, 1, 3])
#结果:[[[11 12 13]]]
如何理解?
begin: [1,0,0],表示从t[1,0,0]这个元素开始,t[1,0,0] = 11,所以是从11开始取值。
size: [1,1,3] 表示最终取完值后,当为形状[1,1,3]也就是说,第一维需要取一个元素,第二维也取一个元素,最后第三维取3个元素的。如何取?
关于维度以及元素的理解可以参考:
Numpy,Tensor维度的理解方式
步骤:
第一维有三个元素:
[[1, 2, 3], [4, 5, 6]],
[[11, 12, 13], [14, 15, 16]],
[[21, 22, 23], [24, 25, 26]]])
从里面只取一个元素,因为是从11开始的,即第二个元素开始,那么就是:
[[11, 12, 13], [14, 15, 16]]
然后,这第二维有2个元素:
[11, 12, 13], [14, 15, 16]
第二维只取一个元素,那么就是:[11, 12, 13]
然后第三维有3个元素:
11, 12, 13
第三维需要取三个元素,那么就是全取了,得到:
11, 12, 13
所以最后的结果补上维度(也就是中括号)为:[[[11 12 13]]]