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]]]。
第三個例子大家自己試驗一下吧。