Как сохранить потерю активации, напечатанную на экране, при использовании visualize_activation из keras? - PullRequest
0 голосов
/ 04 июня 2019

Я работаю над визуализацией активации плотного слоя в сверточной нейронной сети. Я использую функцию visualize_activation из файла activ_maximization.py. Ниже приведен исходный код:

https://github.com/raghakot/keras-vis/blob/master/vis/visualization/activation_maximization.py#L52

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

from vis.utils import utils #utility to find layers
from keras import activations #import activations package from keras 

layer_idx = utils.find_layer_idx(model, 'dense_4') #We want to visualize the final dense layer. 

model.layers[layer_idx].activation = activations.linear  #change activation of final layer from sigmoid to linear

model = utils.apply_modifications(model) #apply that modification to the model

from vis.visualization import visualize_activation

img = visualize_activation(model, layer_idx, filter_indices=0, max_iter=20, callbacks=[],verbose=True)


Iteration: 1, named_losses: [('ActivationMax Loss', 905.0986),
 ('L-6.0 Norm Loss', 0.5103914),
 ('TV(2.0) Loss', 6269.6377)], overall loss: 7175.24658203125
Iteration: 2, named_losses: [('ActivationMax Loss', 587.5296),
 ('L-6.0 Norm Loss', 0.505722),
 ('TV(2.0) Loss', 3216.1995)], overall loss: 3804.23486328125
Iteration: 3, named_losses: [('ActivationMax Loss', 490.57422),
 ('L-6.0 Norm Loss', 0.5032846),
 ('TV(2.0) Loss', 1831.6558)], overall loss: 2322.7333984375
Iteration: 4, named_losses: [('ActivationMax Loss', 373.54468),
 ('L-6.0 Norm Loss', 0.50211877),
 ('TV(2.0) Loss', 1174.0686)], overall loss: 1548.1153564453125
Iteration: 5, named_losses: [('ActivationMax Loss', 270.78586),
 ('L-6.0 Norm Loss', 0.5014095),
 ('TV(2.0) Loss', 776.7929)], overall loss: 1048.0802001953125
Iteration: 6, named_losses: [('ActivationMax Loss', 194.22995),
 ('L-6.0 Norm Loss', 0.5009613),
 ('TV(2.0) Loss', 523.78174)], overall loss: 718.5126342773438
Iteration: 7, named_losses: [('ActivationMax Loss', 142.9722),
 ('L-6.0 Norm Loss', 0.5007244),*emphasized text*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...