Пользовательские метрики Keras и имена потерь - PullRequest
0 голосов
/ 27 ноября 2018

У меня очень большая модель с большим количеством потерь и метрик.Когда я делаю print(np.array(self.model.metrics_names)), я получаю это:

['loss' 'autoencoder_loss' 'autoencoder_loss' 'autoencoder_loss'
 'autoencoder_loss' 's_regularisation_phase_loss'
 'gen_regularisation_phase_loss' 's_regularisation_phase_loss'
 'z_regularisation_phase_loss' 'gen_regularisation_phase_loss'
 'z_regularisation_phase_loss' 'gen_regularisation_phase_loss'
 'gen_regularisation_phase_loss' 'autoencoder_categorical_accuracy'
 'autoencoder_output' 'autoencoder_categorical_accuracy_1'
 'autoencoder_output_1' 'autoencoder_categorical_accuracy_2'
 'autoencoder_output_2' 'autoencoder_categorical_accuracy_3'
 'autoencoder_output_3' 's_regularisation_phase_categorical_accuracy'
 's_regularisation_phase_output'
 'gen_regularisation_phase_categorical_accuracy'
 'gen_regularisation_phase_output'
 's_regularisation_phase_categorical_accuracy_1'
 's_regularisation_phase_output_1'
 'z_regularisation_phase_categorical_accuracy'
 'z_regularisation_phase_output'
 'gen_regularisation_phase_categorical_accuracy_1'
 'gen_regularisation_phase_output_1'
 'z_regularisation_phase_categorical_accuracy_1'
 'z_regularisation_phase_output_1'
 'gen_regularisation_phase_categorical_accuracy_2'
 'gen_regularisation_phase_output_2'
 'gen_regularisation_phase_categorical_accuracy_3'
 'gen_regularisation_phase_output_3']

Есть ли способ дать им более значимые имена?

1 Ответ

0 голосов
/ 28 ноября 2018

Имена перед каждым _loss и _accuracy взяты из имен выходных слоев.Если вы хотите изменить эти имена, вы должны переименовать выходные слои.

Рассмотрим следующую модель.

input_ =  keras.layers.Input(shape=(8,))
x =  keras.layers.Dense(16)(input_)
output1 = keras.layers.Dense(32, name="output1")(x)
output2 = keras.layers.Dense(32, name="output2")(x)
model = keras.models.Model(inputs=input_, outputs=[output1, output2])
model.compile(loss=["mse", "mae"], optimizer="adam", metrics={"output1":"accuracy","output2":"accuracy"})

Теперь model.metrics_names выдаст вам следующий список

['loss', 'output1_loss', 'output2_loss', 'output1_acc', 'output2_acc']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...