2016-08-02 5 views
2

Wie kann ich eine 1x1-Faltung, die über separate Tensoren entlang der räumlichen Dimension im Tensorflow verfügt, effizient implementieren? Es gibt eine tf.nn.depthwise_conv2d, die meinem Problem ähnlich ist, aber es hat separate Filter über Tiefe (d. 3. Dimension).Räumliche trennbare Faltung

Im einfachsten Fall out_channels = 1 diese Faltung kann geschrieben werden:

def spatial_conv(input, filter): 
    return tf.reduce_sum(tf.mul(input, filter), [3], keep_dims=True) 

wo input.dim=[batch_size, input_width, input_height, channels] und filter.dim=[input_width, input_height, channels]. Ich möchte diese Faltung verallgemeinern, indem ich die Ausgaben von der gleichen Eingabe und von verschiedenen (aber derselben Form) Filtern verkette.

Antwort