tensor akışı:: işlem:: Uzaya Derinlik
#include <array_ops.h>
T tipi tensörler için DepthToSpace .
Özet
Verileri derinlikten uzamsal veri bloklarına yeniden düzenler. Bu SpaceToDepth'in ters dönüşümüdür. Daha spesifik olarak, bu işlem, depth
boyutundan gelen değerlerin uzamsal bloklar halinde height
ve width
boyutlarına taşındığı giriş tensörünün bir kopyasını çıkarır. attr block_size
giriş bloğu boyutunu ve verilerin nasıl taşındığını gösterir.
- Derinlikten itibaren
block_size * block_size
boyutundaki veri yığınları,block_size x block_size
boyutunda örtüşmeyen bloklar halinde yeniden düzenlenir - Çıkış tensörünün genişliği
input_depth * block_size
, yüksekliği iseinput_height * block_size
. - Çıkış görüntüsünün her bloğundaki Y, X koordinatları, giriş kanalı indeksinin yüksek dereceli bileşeni tarafından belirlenir.
- Giriş tensörünün derinliği
block_size * block_size
ile bölünebilir olmalıdır.
data_format
özniteliği, aşağıdaki seçeneklerle giriş ve çıkış tensörlerinin düzenini belirtir: "NHWC": [ batch, height, width, channels ]
"NCHW": [ batch, channels, height, width ]
"NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]
İşlemi 6-D Tensörün dönüştürülmesi olarak düşünmek faydalıdır. örneğin data_format = NHWC için, Giriş tensöründeki her öğe, bellek düzeni önemini şu şekilde azaltarak sıralanan 6 koordinat aracılığıyla belirtilebilir: n,iY,iX,bY,bX,oC (burada n=toplu indeks, iX, iY, X anlamına gelir) veya giriş görüntüsü içindeki Y koordinatları, bX, bY çıkış bloğu içindeki koordinatlar anlamına gelir, oC çıkış kanalları anlamına gelir). Çıkış, aşağıdaki düzene aktarılan giriş olacaktır: n,iY,bY,iX,bX,oC
Bu işlem, örneğin havuzlama yerine, evrişimler arasındaki aktivasyonları yeniden boyutlandırmak (ancak tüm verileri tutmak) için kullanışlıdır. Tamamen evrişimsel modellerin eğitimi için de kullanışlıdır.
Örneğin, [1, 1, 1, 4]
şeklinde bir giriş verildiğinde, data_format = "NHWC" ve blok_size = 2:
x = [[[[1, 2, 3, 4]]]]
This operation will output a tensor of shape
[1, 2, 2, 1]
:
Burada giriş 1'lik bir partiye sahiptir ve her parti elemanı
[1, 1, 4]
şekline sahiptir, karşılık gelen çıktı 2x2 elemana sahip olacak ve 1 kanal derinliğine sahip olacaktır (1 =4 / (block_size * block_size)
). Çıkış elemanı şekli[2, 2, 1]
şeklindedir.Daha büyük derinliğe sahip bir giriş tensörü için, burada
[1, 1, 1, 12]
şeklindedir, örneğin
Bu işlem, 2 blok boyutu için, aşağıdaki
[1, 2, 2, 3]
şeklindeki tensörü döndürecektir.