Domanda

io sono affascinato dalla autoencoders e piace molto l'idea di convoluzione. Sembra però che sia Teanò e tensorflow solo conv2d supporto per passare da una matrice di 2D-RGB (n 3D array) ad un array di immagini di maggiore profondità. Questo ha un senso dal tradizionale tensore-prodotto per la matematica, c_ijkl = somma {a_ijk * b_klm}, ma significa che è difficile 'de-convolve' un'immagine.

In entrambi i casi, se ho un'immagine (in #batch, profondità, altezza, forma larghezza), che può fare conv per ottenere (#batch, num_filters, altezza / k, larghezza / k). Mi piacerebbe davvero fare il contrario, come andare da (#BATCH, some_items, altezza / k, larghezza / k) (#BATCH, profondità, altezza, larghezza).

tensorflow aveva la funzione deconv2d nascosto per un po '(a 0,6, credo, senza documenti), ma mi piacerebbe sapere se c'è un trucco per la matematica che posso usare per ottenere una produzione più grande negli ultimi due dimensioni dopo una convoluzione rispetto all'ingresso. Mi accontenterei di una serie di operazioni differenziabili, come conv -> ridimensionamento, ma voglio evitare solo facendo una moltiplicazione di matrici densa -.> Ridimensionamento come ho fatto finora

EDIT: A partire da oggi (2016/02/17) tensorflow 0.7 ha il metodo tf.depth_to_space, che aiuta molto in questo sforzo. ( https://www.tensorflow.org/api_docs/python/tf/depth_to_space) mi amo ancora una soluzione basata Theano, troppo, per completare la mia comprensione del materiale.

È stato utile?

Soluzione

Le cose sono cambiate in tensorflow da quando questa domanda è stato chiesto, ma qui è un link per fare conv2d_transpose . Credo che questo è ciò che stai cercando

Altri suggerimenti

Forse dare un'occhiata a questo post . Si può fare una convoluzione, che eroga una potenza di dimensioni simili e poi "unpool" quelle mappe caratteristica.

Non sono sicuro se siete alla ricerca di pesi dei filtri nello strato deconvolutional di essere legato al corrispondente strato convoluzionale, ma o è possibile in Lasagne che gira su Theano. Un'implementazione slegato dello strato deconvolutional quale emette un un'immagine più grande rispetto al suo ingresso: https://groups.google.com/forum/?hl=en#!topic/lasagne-users/9H6-mmnkHX0

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top