Google I/O'yu ayarladığınız için teşekkür ederiz. İsteğe bağlı olarak tüm oturumları görüntüleyin İsteğe bağlı olarak izleyin

tensorflow :: ops :: BatchToSpaceND

#include <array_ops.h>

T tipi ND tensörleri için BatchToSpace .

Özet

Bu işlem, 0 "batch" boyutunu, block_shape + [batch] şeklinin M + 1 boyutlarına yeniden şekillendirir, bu blokları, uzamsal boyutlar [1, ..., M] tarafından tanımlanan ızgaraya geri serpiştirerek ile bir sonuç elde eder. girdi ile aynı sıra. Bu ara sonucun uzamsal boyutları daha sonra çıktıyı üretmek için crops göre isteğe bağlı olarak kırpılır. Bu SpaceToBatch'in tersidir. Kesin bir açıklama için aşağıya bakın.

Argümanlar:

  • kapsam: Bir Scope nesnesi
  • input: input_shape = [batch] + spatial_shape + remaining_shape şeklinde ND, burada uzamsal_şekilde M boyutları vardır.
  • block_shape: [M] şeklinde 1-D, tüm değerler> = 1 olmalıdır.
  • bitkiler: [M, 2] şeklinde 2-D, tüm değerler> = 0 olmalıdır. crops[i] = [crop_start, crop_end] , uzamsal boyut i karşılık gelen i + 1 girdi boyutundan kırpılacak miktarı belirtir. crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1] .

Bu işlem aşağıdaki adımlara eşdeğerdir:

  1. input şeklin reshaped için reshaped şekillendirin: [block_shape [0], ..., block_shape [M-1], batch / prod (block_shape), input_shape [1], ..., input_shape [N-1]]
  2. Arasında Permute boyutları reshaped üretmek için permuted şekil [parti / eşya (block_shape), input_shape [1], block_shape [0], ..., input_shape [M], block_shape [M-1] ', input_shape [M + 1], ..., input_shape [N-1]]
  3. Yeniden şekillendirme permuted üretmek için reshaped_permuted şekil [parti / eşya (block_shape), input_shape [1] * block_shape [0], ..., input_shape [M] * block_shape [M-1] ', input_shape [M + 1], .. ., input_shape [N-1]]
  4. Şekil çıktısını üretmek için crops göre reshaped_permuted boyutlarının [1, ..., M] başlangıcını ve sonunu kırpın: [batch / prod (block_shape), input_shape [1] * block_shape [0] - ekinler [0, 0] - ürünler [0,1], ..., input_shape [M] * block_shape [M-1] - ürünler [M-1,0] - ürünler [M-1,1], input_shape [M + 1] , ..., input_shape [N-1]]

Bazı örnekler:

(1) Aşağıdaki şekil girişi için [4, 1, 1, 1] , block_shape = [2, 2] ve crops = [[0, 0], [0, 0]] :

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

Çıkış tensörünün şekli [1, 2, 2, 1] ve değeri vardır:

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

(2) Aşağıdaki şekil girişi için [4, 1, 1, 3] , block_shape = [2, 2] ve crops = [[0, 0], [0, 0]] :

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

Çıkış tensörünün şekli [1, 2, 2, 3] ve değeri vardır:

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

(3) Aşağıdaki şekil girişi için [4, 2, 2, 1] , block_shape = [2, 2] ve crops = [[0, 0], [0, 0]] :

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

Çıkış tensörünün şekli [1, 4, 4, 1] ve değeri vardır:

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

(4) Aşağıdaki şekil girişi için [8, 1, 3, 1] , block_shape = [2, 2] ve 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]]]]

Çıkış tensörünün şekli [2, 2, 4, 1] ve değeri vardır:

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

İadeler:

  • Output : Çıkış tensörü.

Yapıcılar ve Yıkıcılar

BatchToSpaceND (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input block_shape, :: tensorflow::Input crops)

Genel özellikler

operation
output

Kamusal işlevler

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Genel özellikler

operasyon

Operation operation

çıktı

::tensorflow::Output output

Kamusal işlevler

BatchToSpaceND

 BatchToSpaceND(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input block_shape,
  ::tensorflow::Input crops
)

düğüm

::tensorflow::Node * node() const 

operator :: tensorflow :: Girdi

 operator::tensorflow::Input() const 

operator :: tensorflow :: Çıktı

 operator::tensorflow::Output() const