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. Visualisatie van de eerste convoluationale laag van cijfer 1 Visualisatie van de eerste convoluationale laag van cijfer 1



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow