tensorflow
Visualisatie van de output van een convolutionele laag
Zoeken…
Invoering
Er zijn veel manieren om de convolutionele lagen te visualiseren, maar ze delen dezelfde componenten: het ophalen van de waarden van een deel van de convolutionele neurale netwerken en het visualiseren van die waarden. Merk op dat deze visualisaties niet en niet op het TensorBoard kunnen worden weergegeven.
Een eenvoudig voorbeeld van 2 stappen
In het voorbeeld wordt ervan uitgegaan dat u de tutorial van MNIST ( Deep MNIST voor expert ) hebt uitgevoerd en volledig begrijpt.
%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()
De bovenstaande functie visualiseert een array (con_val) met de waarden van een convolutionele laag gegeven de kernel. De functie vat de waarden van alle voorbeelden samen en plot ze in grijstinten.
De volgende codes halen waarden uit de eerste convolutionele laag en roepen de bovenstaande functie op om weer te geven.
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)
De codes plotten alleen de visualisaties die overeenkomen met labels van 0 en 1. U kunt de resultaten als deze zien.