tensorflow
Visualiser la sortie d'une couche convolutionnelle
Recherche…
Introduction
Il existe plusieurs manières de visualiser les couches convolutives, mais elles partagent les mêmes composants: extraire les valeurs d’une partie des réseaux neuronaux convolutifs et visualiser ces valeurs. Notez que ces visualisations ne doivent pas et ne peuvent pas être affichées sur le TensorBoard.
Un exemple de base de 2 étapes
L'exemple suppose que vous avez réussi et compris le tutoriel de MNIST ( Deep MNIST for expert ).
%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()
La fonction ci-dessus visualise un tableau (con_val) contenant les valeurs d'une couche convolutionnelle à partir du noyau. La fonction récapitule les valeurs de tous les exemples et les représente en niveaux de gris.
Les codes suivants récupèrent les valeurs de la première couche convolutionnelle et appellent la fonction ci-dessus à afficher.
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)
Les codes ne représentent que les visualisations correspondant aux libellés de 0 et 1. Vous pourrez voir les résultats comme tels.