DepthToSpace per tensori di tipo T.
Riorganizza i dati dalla profondità in blocchi di dati spaziali. Questa è la trasformazione inversa di SpaceToDepth. Più specificamente, questa operazione restituisce una copia del tensore di input in cui i valori dalla dimensione "profondità" vengono spostati in blocchi spaziali alle dimensioni "altezza" e "larghezza". L'attributo "block_size" indica la dimensione del blocco di input e il modo in cui i dati vengono spostati.
* Blocchi di dati di dimensione `block_size * block_size` dalla profondità vengono riorganizzati in blocchi non sovrapposti di dimensione `block_size x block_size` * La larghezza del tensore di output è `input_ Depth * block_size`, mentre l'altezza è `input_height * block_size`. * Le coordinate Y, X all'interno di ciascun blocco dell'immagine di uscita sono determinate dalla componente di ordine superiore dell'indice del canale di ingresso. * La profondità del tensore di input deve essere divisibile per `block_size * block_size`.
L'attributo `data_format` specifica il layout dei tensori di input e output con le seguenti opzioni: "NHWC": `[ batch, altezza, larghezza, canali ]` "NCHW": `[ batch, canali, altezza, larghezza ]` " NCHW_VECT_C": `qint8 [ batch, canali / 4, altezza, larghezza, 4]`
È utile considerare l'operazione come la trasformazione di un tensore 6-D. ad esempio, per data_format = NHWC, ogni elemento nel tensore di input può essere specificato tramite 6 coordinate, ordinate in base al significato decrescente del layout della memoria come: n,iY,iX,bY,bX,oC (dove n=indice batch, iX, iY significa X o coordinate Y all'interno dell'immagine di ingresso, bX, bY significa coordinate all'interno del blocco di uscita, oC significa canali di uscita). L'output sarebbe l'input trasposto nel seguente layout: n,iY,bY,iX,bX,oC
Questa operazione è utile per ridimensionare le attivazioni tra le convoluzioni (ma mantenendo tutti i dati), ad esempio invece del pooling. È utile anche per addestrare modelli puramente convoluzionali.
Ad esempio, dato un input di forma "[1, 1, 1, 4]", data_format = "NHWC" e block_size = 2:
x = [[[[1, 2, 3, 4]]]]
[[[[1], [2]],
[[3], [4]]]]
Per un tensore di input con profondità maggiore, qui di forma `[1, 1, 1, 12]`, ad esempio
x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
[[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
x = [[[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[9, 10, 11, 12],
[13, 14, 15, 16]]]]
x = [[[ [1], [2], [5], [6]],
[ [3], [4], [7], [8]],
[ [9], [10], [13], [14]],
[ [11], [12], [15], [16]]]]
Classi nidificate
classe | DepthToSpace.Options | Attributi facoltativi per DepthToSpace |
Costanti
Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
Uscita <T> | comeuscita () Restituisce l'handle simbolico del tensore. |
statico <T estende TType > DepthToSpace <T> | create ( ambito ambito , input operando <T>, dimensione blocco lungo, opzioni... opzioni) Metodo factory per creare una classe che racchiude una nuova operazione DepthToSpace. |
DepthToSpace.Options statico | dataFormat (Stringa dataFormat) |
Uscita <T> | produzione () |
Metodi ereditati
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
Metodi pubblici
Uscita pubblica <T> asOutput ()
Restituisce l'handle simbolico del tensore.
Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.
creazione statica pubblica DepthToSpace <T> (ambito ambito , input operando <T>, dimensione blocco lungo, opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione DepthToSpace.
Parametri
portata | ambito attuale |
---|---|
blockSize | La dimensione del blocco spaziale, la stessa di Space2Depth. |
opzioni | trasporta valori di attributi opzionali |
Ritorni
- una nuova istanza di DepthToSpace