Как мы можем реализовать визуализацию нейронной сети на основе градиента, используя цикл TensorFlow while (tf. while_loop)? - PullRequest
0 голосов
/ 07 июля 2019

Чтобы узнать, к чему чувствителен определенный фильтр в сверточном слое в сверточной нейронной сети, можно применить визуализацию на основе градиентных фильтров.

Идея состоит в том, чтобы передать случайное изображение в сеть, а затем найти градиенты, которые максимизируют активацию карты характеристик фильтра. Добавьте эти градиенты к изображению и выполните итерацию.

Пусть:

conv_node be a convolutional layer in a neural network

filter_index be the index of the filter we want to visualize

Предлагаемый подход можно найти здесь: https://github.com/penny4860/cnn-visualizer/blob/master/src/utils.py

Мы можем реализовать предложенный подход в TensorFlow, используя следующий псевдокод:

loss = average(get_feature_map(conv_node, filter_index))
gradients = gradients(loss, input_image)
gradients = normalize(gradients)

Использование сеанса TensorFlow:

gradients_values = session.run(gradients)
random_input_image + = gradients_values

Мой вопрос:

Как реализовать ту же процедуру с помощью API while_loop TensorFlow?

...