aliran tensor:: operasi:: DepthToSpace
#include <array_ops.h>
DepthToSpace untuk tensor tipe T.
Ringkasan
Menyusun ulang data dari kedalaman menjadi blok data spasial. Ini adalah transformasi kebalikan dari SpaceToDepth. Lebih khusus lagi, operasi ini menghasilkan salinan tensor masukan di mana nilai dari dimensi depth
dipindahkan dalam blok spasial ke dimensi height
dan width
. attr block_size
menunjukkan ukuran blok masukan dan cara data dipindahkan.
- Potongan data berukuran
block_size * block_size
dari kedalaman disusun ulang menjadi blok-blok yang tidak tumpang tindih dengan ukuranblock_size x block_size
- Lebar tensor keluarannya adalah
input_depth * block_size
, sedangkan tingginya adalahinput_height * block_size
. - Koordinat Y, X dalam setiap blok gambar keluaran ditentukan oleh komponen tingkat tinggi dari indeks saluran masukan.
- Kedalaman tensor masukan harus habis dibagi
block_size * block_size
.
attr data_format
menentukan tata letak tensor input dan output dengan opsi berikut: "NHWC": [ batch, height, width, channels ]
"NCHW": [ batch, channels, height, width ]
"NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]
Penting untuk mempertimbangkan operasi ini sebagai transformasi Tensor 6-D. misalnya untuk data_format = NHWC, Setiap elemen dalam tensor masukan dapat ditentukan melalui 6 koordinat, diurutkan dengan mengurangi signifikansi tata letak memori sebagai: n,iY,iX,bY,bX,oC (di mana n=indeks batch, iX, iY berarti X atau koordinat Y dalam gambar masukan, bX, bY berarti koordinat dalam blok keluaran, oC berarti saluran keluaran). Outputnya akan menjadi input yang dialihkan ke tata letak berikut: n,iY,bY,iX,bX,oC
Operasi ini berguna untuk mengubah ukuran aktivasi antar konvolusi (tetapi menyimpan semua data), misalnya, alih-alih mengumpulkan. Hal ini juga berguna untuk melatih model konvolusional murni.
Misalnya, jika diberi masukan bentuk [1, 1, 1, 4]
, data_format = "NHWC" dan block_size = 2:
x = [[[[1, 2, 3, 4]]]]
This operation will output a tensor of shape
[1, 2, 2, 1]
:
Di sini, masukan memiliki kumpulan 1 dan setiap elemen kumpulan memiliki bentuk
[1, 1, 4]
, keluaran yang sesuai akan memiliki elemen 2x2 dan akan memiliki kedalaman 1 saluran (1 =4 / (block_size * block_size)
). Bentuk elemen keluarannya adalah[2, 2, 1]
.Untuk tensor masukan dengan kedalaman lebih besar, bentuk berikut
[1, 1, 1, 12]
, misalnya
Operasi ini, untuk ukuran blok 2, akan mengembalikan bentuk tensor berikut
[1, 2, 2, 3]