TensorFlow分割:tf.slice函數(shù)

2018-01-26 10:28 更新

tf.slice 函數(shù)

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

定義在:tensorflow/python/ops/array_ops.py.

參見指南:張量變換>分割和連接

從張量中提取切片.

此操作從由begin指定位置開始的張量input中提取一個尺寸size的切片.切片size被表示為張量形狀,其中size[i]是你想要分割的input的第i維的元素的數(shù)量.切片的起始位置(begin)表示為每個input維度的偏移量.換句話說,begin[i]是你想從中分割出來的input的“第i個維度”的偏移量.

請注意,tf.Tensor.__getitem__通常是執(zhí)行切片的python方式,因為它允許您寫foo[3:7, :-2],而不是tf.slice([3, 0], [4, foo.get_shape()[1]-2]).

begin是基于零的;size是一個基礎.如果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]]]

函數(shù)參數(shù)

  • input_:一個Tensor.
  • begin:一個int32或int64類型的Tensor.
  • size:一個int32或int64類型的Tensor.
  • name:操作的名稱(可選).

函數(shù)返回

tf.slice函數(shù)返回與input具有相同類型的Tensor.

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號