2017-02-13 2 views
0

J'essaye d'appliquer 2 couches convolutives avec la fonction tf.slim.conv2d, elles réduisent fondamentalement la taille de mon image d'entrée de moitié chaque fois. Ensuite, je veux appliquer le convolution2d_transpose pour obtenir ma forme originale de l'image. Le problème est que je ne sais pas exactement comment utiliser la fonction de convolution transpose, et la documentation n'est pas beaucoup d'aide.Utiliser Tensorflow.slim pour appliquer convolution2d_transpose

J'utilise un emballage personnalisé, mais voici ce que j'ai jusqu'à présent:

Input Batch [8, 161, 141] ----> Conv2d [outputs = 32, 
kernel_size = [41,11], stride= [2,2]] 
which cuts the original image in half, and another such layer which cuts it again. 

Comment puis-je appliquer la fonction convolution_transpose pour inverser l'effet de ces deux couches maintenant?

+0

Une façon de commencer est avec le [Test] (https : //github.com/tensorflow/tensorflow/blob/master/tensorflow/python/kernel_tests/conv2d_transpose_test.py) fichier de cas, si cela aide plus que les docs. – drpng

Répondre

0

Selon le lien tensorflow api-docs vous ci-dessus:

def convolution2d_transpose(
inputs, 
num_outputs, 
kernel_size, 
stride=1, 
padding='SAME', 
data_format=DATA_FORMAT_NHWC, 
activation_fn=nn.relu, 
normalizer_fn=None, 
normalizer_params=None, 
weights_initializer=initializers.xavier_initializer(), 
weights_regularizer=None, 
biases_initializer=init_ops.zeros_initializer(), 
biases_regularizer=None, 
reuse=None, 
variables_collections=None, 
outputs_collections=None, 
trainable=True, 
scope=None): 

vous pouvez, par votre exemple, d'utiliser comme ceci:

slim.convolution2d_transpose(input_tensor, 32, [4,4], [2,2], scope='output')