當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.slice用法及代碼示例


從張量中提取切片。

用法

tf.slice(
    input_, begin, size, name=None
)

參數

  • input_ 一個Tensor
  • begin 一個 int32int64 Tensor
  • size 一個 int32int64 Tensor
  • name 操作的名稱(可選)。

返回

  • Tensorinput_ 類型相同。

另見tf.strided_slice

此操作從張量 input_ 中提取大小為 size 的切片,從 begin 指定的位置開始。切片size 表示為張量形狀,其中size[i] 是要切片的input_ 的'i'th 維度的元素數。切片的起始位置 (begin) 表示為 input_ 的每個維度中的偏移量。換句話說,begin[i] 是您要從中切片的input_ 的第 i 個維度的偏移量。

請注意,tf.Tensor.getitem 通常是一種更 Pythonic 的方式來執行切片,因為它允許您編寫 foo[3:7,:-2] 而不是 tf.slice(foo, [3, 0], [4, foo.get_shape()[1]-2])

begin 是從零開始的; size 是基於 1 的。如果size[i] 為 -1,則維度 i 中的所有剩餘元素都包含在切片中。換句話說,這相當於設置:

size[i] = input_.dim_size(i) - begin[i]

此操作要求:

0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n]

例如:

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]]]
tf.slice(t, [1, 0, 0], [1, 2, 3])  # [[[3, 3, 3],
                                   #   [4, 4, 4]]]
tf.slice(t, [1, 0, 0], [2, 1, 3])  # [[[3, 3, 3]],
                                   #  [[5, 5, 5]]]

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.slice。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。