SpaceToBatchNd

halka açık final dersi SpaceToBatchNd

T tipi ND tensörleri için SpaceToBatch.

Bu işlem, girdinin "uzaysal" boyutlarını "[1, ..., M]", "blok_şekli" şeklindeki bloklardan oluşan bir ızgaraya böler ve bu blokları, çıktıda olacak şekilde "toplu" boyut (0) ile serpiştirir. uzamsal boyutlar "[1, ..., M]" ızgara içindeki konuma karşılık gelir ve toplu iş boyutu hem uzaysal blok içindeki konumu hem de orijinal toplu iş konumunu birleştirir. Bloklara bölünmeden önce, girdinin uzamsal boyutları isteğe bağlı olarak 'dolgulara' göre sıfır dolguludur. Kesin bir açıklama için aşağıya bakın.

Genel Yöntemler

Çıkış <T>
Çıkış olarak ()
Bir tensörün sembolik tutamacını döndürür.
static <T, U Sayıyı genişletir, V Sayıyı genişletir> SpaceToBatchNd <T>
create ( Kapsam kapsamı, İşlenen <T> girişi, İşlenen <U> blok Şekli, İşlenen <V> dolguları)
Yeni bir SpaceToBatchNd işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.
Çıkış <T>

Kalıtsal Yöntemler

Genel Yöntemler

genel Çıkış <T> asOutput ()

Bir tensörün sembolik tutamacını döndürür.

TensorFlow işlemlerinin girdileri, başka bir TensorFlow işleminin çıktılarıdır. Bu yöntem, girişin hesaplanmasını temsil eden sembolik bir tanıtıcı elde etmek için kullanılır.

public static SpaceToBatchNd <T> create ( Kapsam kapsamı, İşlenen <T> girişi, İşlenen <U> blokShape, İşlenen <V> dolguları)

Yeni bir SpaceToBatchNd işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.

Parametreler
kapsam mevcut kapsam
giriş `input_shape = [toplu] + uzamsal_şekil + kalan_şekil` şeklinde ND; burada uzamsal_şekil "M" boyutlara sahiptir.
blok Şekli "[M]" şeklinde 1-D, tüm değerler >= 1 olmalıdır.
dolgular `[M, 2]` şeklinde 2 boyutlu, tüm değerler >= 0 olmalıdır. `paddings[i] = [pad_start, pad_end]`, uzamsal boyuta karşılık gelen `i + 1` giriş boyutu için dolguyu belirtir "ben". 'block_shape[i]'nin, 'input_shape[i + 1] + pad_start + pad_end'i bölmesi gerekir.

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

1. 'padded_shape' şeklinin 'dolgulu'sunu oluşturmak için 'dolgulara' göre girişin '[1, ..., M]' boyutlarının başlangıcını ve bitişini sıfırlayın.

2. Şeklin "yastıklı" şeklini "yeniden şekillendirilmiş_yastıklı" olarak yeniden şekillendirin:

[toplu] + [padded_shape[1] / blok_şekli[0], blok_şekli[0], ..., yastıklı_şekil[M] / blok_şekli[M-1], blok_şekli[M-1]] + kalan_şekil

3. Şeklin 'permuted_retained_padded'ini oluşturmak için 'retained_retained_padded' boyutlarına izin verin:

blok_şekli + [toplu] + [padded_shape[1] / blok_şekli[0], ..., yastıklı_şekil[M] / blok_şekli[M-1]] + kalan_şekil

4. "block_shape"i toplu boyuta düzleştirmek için "permuted_retained_padded"i yeniden şekillendirin ve bir şekil çıkış tensörü oluşturun:

[batch * prod(block_shape)] + [padded_shape[1] / blok_shape[0], ..., padded_shape[M] / blok_shape[M-1]] + kalan_şekil

Bazı örnekler:

(1) Aşağıdaki "[1, 2, 2, 1]", "blok_şekli = [2, 2]" ve "doldurmalar = [[0, 0], [0, 0]]" şeklinin girişi için:

x = [[[[1], [2]], [[3], [4]]]]
 
Çıkış tensörünün şekli '[4, 1, 1, 1]' ve değeri vardır:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
(2) Aşağıdaki şekil girişi için '[1, 2, 2, 3]', 'blok_şekli = [ 2, 2]' ve 'dolgulamalar = [[0, 0], [0, 0]]':
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
Çıkış tensörünün şekli '[4, 1, 1, 3]' ve değeri:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
(3) Aşağıdaki "[1, 4, 4, 1]", "blok_şekli = [2, 2]" ve "doldurmalar = [[0, 0], [0, 0]]" şeklinin girişi için:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]],
       [[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
Çıkış tensörünün şekli '[4, 2, 2, 1]' ve değeri vardır:
x = [[[[1], [3]], [[9], [11]]],
      [[[2], [4]], [[10], [12]]],
      [[[5], [7]], [[13], [15]]],
      [[[6], [8]], [[14], [16]]]]
 
(4) Aşağıdaki '[2, 2, 4, 1]' şeklindeki girdi için blok_şekli = `[ 2, 2]' ve dolgular = `[[0, 0], [2, 0]]':
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
Çıkış tensörünün şekli '[8, 1, 3, 1]' ve değeri:
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]]]]
 
Diğerlerinin yanı sıra bu işlem, atröz evrişimin düzenli evrişime indirgenmesinde faydalıdır.

İadeler
  • SpaceToBatchNd'nin yeni bir örneği

genel Çıkış <T> çıkışı ()