2016-10-03 5 views
0

Ich versuche, die tf.image_summary Funktion in Tensorflow zu verwenden. Ich versuche, den Filter einer Faltungsschicht zu visualisieren. Der Filter ist definiert als tf.Variable(tf.constant(0.1, shape=[5, 5, 16, 32])).Extrahiere bestimmte Dimensionen von einem Tensor

Aber hier, da ich nur die letzten Filter sehen möchte, möchte ich einen Weg finden, um einen Filter der Größe [5, 5, 32] zu erhalten, indem Sie einfach den ersten Index der Dimension, die 16 war Ich benutze [:,:, 0,:], dann nehme ich an, dass ich einen Filter [5, 5, 1, 32] anstelle von [5, 5, 32] bekommen würde.

Was soll ich tun?

+0

Wenn Ihre Filtervariable genannt wird 'filters' und nehmen Sie die Scheibe' Filter [:,: 0,: ], dann sollten Sie tatsächlich einen Tensor der Form "[5, 5, 32]" bekommen. – mrry

+0

Im Allgemeinen kann ['tensorflow.squeeze'] (https://www.tensorflow.org/versions/r0.11/api_docs/python/array_ops.html#squeeze) verwendet werden, um Dimensionen mit der Größe zu erhalten 1. – BarzinM

Antwort

0

Also tf.image_summary nimmt einen Batch als Eingabe aber es erwartet 1,3 oder 4 in Bezug auf Farbkanäle.

so müssten Sie in passieren, so etwas tf.image_summary:

for i in range(int(math.floor(filter.get_shape()[4]/3))): 
    tf.image_summary(filter[:,:,:,i:i+3]) 
Verwandte Themen