2016-06-12 16 views
16

Desidero utilizzare il tensorflow per implementare una rete completamente convoluzionale. Esiste una funzioneCome utilizzare tensorflow per implementare la deconvoluzione?

tf.nn.conv2d_transpose(value, filter, output_shape, strides, padding, name), 

che potrebbe essere utilizzato per eseguire il sovracampionamento bilineare. Tuttavia, sono confuso su come usarlo? L'input è un'immagine con un singolo canale e l'output è anche un'immagine con un singolo canale, la cui dimensione è due volte quella dell'input. Ho cercato di usare la funzione come segue, ma ottenuto un IndexError: list index out of range:

with tf.name_scope('deconv') as scope: 
    deconv = tf.nn.conv2d_transpose(conv6, [3, 3, 1, 1], 
     [1, 26, 20, 1], 2, padding='SAME', name=None) 

risposta

18

Got it! (Input_size assumendo = [1, 13, 10,1])

with tf.name_scope('deconv') as scope: 
    deconv = tf.nn.conv2d_transpose(input_layer, [3, 3, 1, 1], 
     [1, 26, 20, 1], [1, 2, 2, 1], padding='SAME', name=None) 
+0

La prego di far luce su come esattamente questo deconvoluzione? Ho cercato un po 'ma non vedo come la funzione 'conv2d_transpose' fa deconvoluzione. –

+1

@ U.Muneeb La deconvoluzione è un nome (apparentemente errato) per la convoluzione trasposta. Vedi https://datascience.stackexchange.com/questions/6107/what-are-deconvolutionallayers –

Problemi correlati