Example #1
0
    # Carpeta donde guarda las imagenes de los filtros
    # save_dir = make_dirs_noreplace(os.path.join(
    #         'filtros', os.path.splitext(nombre_modelo)[0]))
    save_dir = os.path.join(carpeta, 'filtros')
    os.makedirs(save_dir)

    # Itero sobre todos los filtros de las capas convolutivas
    for capa_ind, nombre in enumerate(nombres):
        print('Corriendo capa ' + nombre)

        # Cantidad de filtros en esta capa
        cant_filtros = modelo.layers[capa_ind].output_shape[
            3]  #cant de filtros
        # Una grilla donde meto las imagenes de cada filtro
        g = Grid(cant_filtros, fill_with=np.nan, trasponer=True)

        # Proceso los filtros y los meto en la grilla
        for filtro_ind in range(cant_filtros):
            channel_filter = generate_pattern(nombre, filtro_ind, modelo)
            channel_filter = np.squeeze(channel_filter)

            # channel_filter es la imagen en cuestión
            g.insert_image(channel_filter)

        # plt.imshow(g.grid)
        g.show()
        nombre = new_name(
            os.path.join(save_dir, 'filtros_{}.jpg'.format(nombre)))
        plt.savefig(nombre, bbox='tight', dpi=400)
        plt.close()
Example #2
0
    #normalizo la imagen
    im -= im.mean()
    im /= (im.std() + 1e-5)  #por si tengo cero
    im *= desv
    #la llevo a 8 bits
    im *= 64
    im += 128
    im = np.clip(im, 0,
                 255).astype('uint8')  #corta todo por fuera de la escala
    return im


#%%

activations = np.load('activations.npz')
activations = [v for v in activations.values()]

for layer_activation in activations:  #zip simplemente me da dos iteradores

    n_features = layer_activation.shape[-1]  #cant de filtros
    size = layer_activation.shape[
        1]  #tamaño del filtro de la capa (es cuadrado)

    g = Grid(n_features, fill_with=0)
    for ch_image in range(n_features):
        channel_image = layer_activation[0, :, :, ch_image]
        g.insert_image(bitificar8(channel_image, 2))

    g.show()
    #    plt.title('{0}: {1}x{1}'.format(layer_name,size-1))
    plt.grid(False)