1. 程式人生 > >tf.strided_slice詳解

tf.strided_slice詳解

tf.strided_slice是多維切片函式,網上給出了很多的說明,可是還是不容易理解,這裡給出自己的理解。

直接在官網的示例上給出分析

strided_slice(

input_, begin, end, strides=None, begin_mask=0, end_mask=0, ellipsis_mask=0, new_axis_mask=0, shrink_axis_mask=0, var=None, name=None

)

前四個引數分別為:輸入資料,開始切片處,終止切片處,步長。區間為開區間

# 'input' is [[[1, 1, 1], [2, 2, 2]],

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

#              [[5, 5, 5], [6, 6, 6]]]

tf.strided_slice(input, [1, 0, 0], [2, 1, 3], [1, 1, 1]) ==> [[[3, 3, 3]]]

tf.strided_slice(input, [1, 0, 0], [2, 2, 3], [1, 1, 1]) ==> [[[3, 3, 3], [4, 4, 4]]]

tf.strided_slice(input, [1, -1, 0], [2, -3, 3], [1, -1, 1]) ==>[[[4, 4, 4], [3, 3, 3]]]

第一個例子的第一維為(1,2)所以切出了[[3,3,3],[4,4,4]],第二維為(0,1),所以切出了[3,3,3],第三維為(0,3),所以最終切出了[[[3,3,3]]].

同理可得第二個例子,依次可以得到[[3,3,3],[4,4,4]],[[3,3,3],[4,4,4]],[[[3, 3, 3], [4, 4, 4]]]。

第三個例子大家自己試驗一下吧。