Поиск…


Вступление

Существует много способов визуализации сверточных слоев, но они имеют одни и те же компоненты: выбор значений части сверточных нейронных сетей и визуализация этих значений. Обратите внимание, что эти визуализации не должны и не могут отображаться на TensorBoard.

Основной пример из 2 шагов

В примере предполагается, что вы успешно выполнили и полностью поняли учебник MNIST ( Deep MNIST для экспертов ).

%matplotlib inline
import matplotlib.pyplot as plt

# con_val is a 4-d array, the first indicates the index of image, the last indicates the index of kernel
def display(con_val, kernel):
    plt.axis('off')
    plt.imshow(np.sum(con_val[:, :, :, kernel], axis=0), cmap=plt.get_cmap('gray'))
    plt.show()

Вышеупомянутая функция визуализирует массив (con_val), содержащий значения сверточного слоя с учетом ядра. Функция суммирует значения всех примеров и выстраивает их в сером масштабе.

Следующие коды извлекают значения из первого сверточного слоя и вызывают указанную выше функцию для отображения.

labels = np.nonzero(mnist.test.labels)[1] # convert "one-hot vectors" to digits (0-9)

for i in range(2): # display only 0 and 1
    con_val = h_pool1.eval(feed_dict={x:mnist.test.images[labels == i, :]}) #fetch
    display(con_val, 3)

Коды отображают только графики, соответствующие меткам 0 и 1. Вы сможете увидеть результаты как они. Визулизация первого сверточного слоя цифры 1 Визулизация первого сверточного слоя цифры 1



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow