Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.batch_to_space

TensorFlow 1 wersja Zobacz źródło na GitHub

BatchToSpace ND tensorów typu T.

Operacja ta przekształca „wsadowy” wymiaru 0 do M + 1 wymiarów kształt block_shape + [batch] , przeplata te bloki z powrotem do sieci określonej przez wymiary przestrzenne [1, ..., M] , aby uzyskać wynik z samej rangi jak na wejściu. Wymiary przestrzenne tego związku pośredniego następnie opcjonalnie przycinane według crops w celu wytworzenia wyjścia. Jest to odwrotność SpaceToBatch (patrz tf.space_to_batch ).

input Nd Tensor o kształcie input_shape = [batch] + spatial_shape + remaining_shape , gdzie spatial_shape ma wymiary M.
block_shape 1-wymiarowym Tensor w kształcie [m]. Musi to być jeden z następujących typów: int32 , int64 . Wszystkie wartości muszą być> = 1. Dla kompatybilności wstecznej z TF 1.0, to parametr może być int, w którym to przypadku jest on przekształcany do numpy.array([block_shape, block_shape], dtype=numpy.int64) .
crops A2-D Tensor w kształcie [M, 2] . Musi to być jeden z następujących typów: int32 , int64 . Wszystkie wartości muszą być> = 0. crops[i] = [crop_start, crop_end] określa ilość do rośliny, z wymiarem wejściowym i + 1 , co odpowiada wymiarze przestrzennym i . Wymagane jest, aby crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1] . Operacja ta jest równoważna z następujących etapów:

  1. Reshape input do reshaped kształtu [block_shape [0], ..., block_shape [M-1], seria / prod (block_shape) input_shape [1], ..., input_shape [n-1]]
  2. Permutacji wymiary reshaped w celu wytworzenia permuted kształtu [partii / prod (block_shape) input_shape [1], block_shape [0], ..., input_shape [M] block_shape [M-1] input_shape [M + 1] ... input_shape [n-1]]
  3. Reshape permuted w celu wytworzenia reshaped_permuted kształtu [partii / prod (block_shape) input_shape [1] * block_shape [0], ..., input_shape [M] * block_shape [M-1] input_shape [M + 1], .. ., input_shape [n-1]]
  4. Przycinanie początek i koniec o wymiarach [1, ..., M] z reshaped_permuted według crops do wytworzenia wyjściowego kształtu [partii / prod (block_shape) input_shape [1] * block_shape [0] - uprawy [0 0] - uprawy [0,1], ..., input_shape [M] * block_shape [M-1] - uprawy [M +] - 1,0 uprawnych [M 1,1] input_shape [M + 1] , ..., input_shape [n-1]]
name Nazwę operacji (opcjonalnie).

Przykłady:

(1) W poniższym wejścia kształtu [4, 1, 1, 1] , block_shape = [2, 2] oraz crops = [[0, 0], [0, 0]] :

 [[[[1]]],
 [[[2]]],
 [[[3]]],
 [[[4]]]]
 

Tensor wyjściowy ma postać [1, 2, 2, 1] i wartości:

 x = [[[[1], [2]],
    [[3], [4]]]]
 

(2) W poniższym wejścia kształtu [4, 1, 1, 3] , block_shape = [2, 2] oraz crops = [[0, 0], [0, 0]] :

 [[[1,  2,   3]],
 [[4,  5,   6]],
 [[7,  8,   9]],
 [[10, 11, 12]]]
 

Tensor wyjściowy ma postać [1, 2, 2, 3] i wartości:

  x = [[[[1, 2, 3], [4,  5,  6 ]],
       [[7, 8, 9], [10, 11, 12]]]]
 

(3) W poniższym wejścia kształtu [4, 2, 2, 1] , block_shape = [2, 2] oraz crops = [[0, 0], [0, 0]] :

 x = [[[[1], [3]], [[ 9], [11]]],
     [[[2], [4]], [[10], [12]]],
     [[[5], [7]], [[13], [15]]],
     [[[6], [8]], [[14], [16]]]]
 

Tensor wyjściowy ma postać [1, 4, 4, 1] i wartości:

  x = [[[1],  [2],  [ 3], [ 4]],
      [[5],  [6],  [ 7], [ 8]],
      [[9],  [10], [11], [12]],
      [[13], [14], [15], [16]]]
 

(4) W poniższym wejścia kształtu [8, 1, 3, 1] , block_shape = [2, 2] oraz crops = [[0, 0], [2, 0]] :

 x = [[[[0], [ 1], [ 3]]],
     [[[0], [ 9], [11]]],
     [[[0], [ 2], [ 4]]],
     [[[0], [10], [12]]],
     [[[0], [ 5], [ 7]]],
     [[[0], [13], [15]]],
     [[[0], [ 6], [ 8]]],
     [[[0], [14], [16]]]]
 
 The output tensor has shape `[2, 2, 4, 1]` and value:
 
 x = [[[[ 1], [ 2], [ 3], [ 4]],
      [[ 5], [ 6], [ 7], [ 8]]],
     [[[ 9], [10], [11], [12]],
      [[13], [14], [15], [16]]]]
 

Tensor . Ten sam typ jako input .