2016-10-03 3 views
0

Я пытаюсь использовать функцию tf.image_summary в тензорном потоке. Я пытаюсь визуализировать фильтр сверточного слоя. Фильтр определяется как tf.Variable(tf.constant(0.1, shape=[5, 5, 16, 32])).Извлечь определенные размеры из тензора

Но здесь, поскольку я хочу видеть только последние фильтры, я хочу найти способ получить фильтр размера [5, 5, 32], просто взяв первый индекс измерения, равный 16. Если Я использую [:,:, 0,:], тогда я предполагаю, что вместо [5, 5, 32] я хочу получить фильтр [5, 5, 1, 32].

Что мне делать?

+0

Если переменная фильтр называется 'filters' и вы берете ломтик' фильтры [:,:, 0,: ] ', тогда вы действительно должны получить тензор формы' [5, 5, 32] '. – mrry

+0

Также, как правило, ['tensorflow.squeeze'] (https://www.tensorflow.org/versions/r0.11/api_docs/python/array_ops.html#squeeze) можно использовать для получения размеров с размерами 1. – BarzinM

ответ

0

Таким образом, tf.image_summary принимает пакет в качестве входных данных, однако он ожидает 1,3 или 4 цветовых канала.

так что вам придется пройти, чтобы tf.image_summary что-то вроде этого:

for i in range(int(math.floor(filter.get_shape()[4]/3))): 
    tf.image_summary(filter[:,:,:,i:i+3]) 
Смежные вопросы