Визуализировать фильтр conv2d для TensorBoard image_summary

Я хочу визуализировать веса фильтров моего CNN. Они имеют размер heightxwidthxinputxoutput.

Однако TensorBoard требует, чтобы image_summary был тензором формы batchesxheightxwidthxchannels.

Как преобразовать веса фильтров в правильную форму?

Некоторый контекст:

W1 = tf.Variable(tf.random_normal([5, 5, 1, 64]), name='W1')
conv = tf.nn.conv2d(x, W1, strides=[1, 1, 1, 1], padding='SAME')

person BinRoot    schedule 18.11.2016    source источник


Ответы (1)


Обычный пакет изображений имеет форму [batch, height, width, 3], поэтому вы можете заставить Tensorboard отображать набор цветных изображений для первого слоя свертки, переместив фильтры на [output, height, width, 3]. В этом ответе есть код: Как визуализировать изученные фильтры в тензорном потоке.

Для весов в других слоях можно показывать только input * output изображений в градациях серого. Сначала вам нужно разделить тензор по входному/выходному каналу, транспонировать и объединить тензор в форму [input * output, height, width, 1]. Пример кода можно найти здесь: https://github.com/tensorflow/tensorflow/issues/ 908

person yuefengz    schedule 18.11.2016