# tf.slice()到底怎么切的，看不懂你掐死我

This operation extracts a slice of size `size` from a tensor `input` starting at the location specified by `begin`. The slice `size` is represented as tensor shape, where `size[i]` is the number of elements of the 'i'th dimension of `input` that you want to slice. The starting location (`begin`) for the slice is represented as an offset in each dimension of `input`. In other words, `begin[i]` is the offset into the 'i'th dimension of `input` that you want to slice from.

def slice(input_, begin, size, name=None):

“begin”是每一个维度的起始位置，这个下面详细说。

“size”相当于问每个维度拿几个元素出来。

t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]], [[5, 5, 5], [6, 6, 6]]])

tf.slice(t, [1, 0, 0], [1, 1, 3])

[[[3, 3, 3]]]

# Shape:

t = [A, B, C]   #这是第一维度

A = [i, j]， B = [k, l]， C = [m, n]  #这是第二维度

i = [1, 1, 1], j = [2, 2, 2], k = [3, 3 ,3], l = [4, 4, 4], m = [5, 5, 5], n = [6, 6, 6]  # 这是第三维度

# Slice:

tf.slice(t, [1, 0, 0], [1, 1, 3])  # begin = [1, 0, 0]

size的意思是每个维度的大小，也就是每个维度取几个元素。size的应该是最后输出的tensor的shape。

tf.slice(t, [1, 0, 0], [1, 1, 3])  # size = [1, 1, 3]

size里第一个是1，意思是在第一个维度取1个元素。t = [A, B, C] begin是起算是B，取一个那就是B了呗。那么第一维度结果就是[B]

size第二个也是1，第二维度B = [k, l]， begin里起算是k，取一个是k。那么第二维度结果是[[k]]

size第三个是3,第三维度k = [3, 3 ,3]，begin里起算是第一个3。三个3取3个数，那就要把三个3都取了，所以是

[[[3, 3, 3]]]

t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]], [[5, 5, 5], [6, 6, 6]]])

tf.slice(t, [1, 0, 0], [1, 2, 3])

[[[3, 3, 3], [4, 4, 4]]]

t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]], [[5, 5, 5], [6, 6, 6]]])

tf.slice(t, [1, 0, 0], [-1, -1, -1])

If `size[i]` is -1, all remaining elements in dimension i are included in the slice. In other words, this is equivalent to setting: `size[i] = input.dim_size(i) - begin[i]`

ref:

https://www.tensorflow.org/versions/r1.1/api_docs/python/tf/slice

https://www.quora.com/How-does-tf-slice-work-in-TensorFlow

### 推荐阅读更多精彩内容

• TF API数学计算tf...... ：math（1）刚开始先给一个运行实例。tf是基于图（Graph）的计算系统...
MachineLP阅读 2,513评论 0 1
• 1. tf函数 tensorflow 封装的工具类函数 | 操作组 | 操作 ||:-------------| ...
南墙已破阅读 4,158评论 0 5
• 一 前段时间，在跟银行里的几个中年领导打交道，托他们办点事情。 中间，请他们吃了几次饭。 第一次吃饭时，我带了几瓶...
吃酒ChiJiu阅读 709评论 1 4
• 有时候，似乎已经忽略了时间，每天睡觉上班下班睡觉，重复的一成不变的生活渐渐使时间概念变得模糊。 一首不知多久没听的...
木鱼沐阅读 143评论 0 0
• 在孤寂的时候， 你总是悄然相伴。 陪我再回味那个激情燃烧的大万！ 回味过去， 在那些风景里採摘故事制成茶...
A都督阅读 97评论 0 0