O ModelCheckpoint do keras não está funcionando

8

Estou tentando treinar um modelo no keras e estou usando o ModelCheckpoint para salvar o melhor modelo de acordo com uma métrica de validação monitorada (no meu caso, o índice Jaccard ).

Embora eu possa ver o modelo melhorando no tensorboard, quando tento carregar os pesos e avaliar o modelo, ele não está funcionando. Além disso, pelo registro de data e hora no arquivo em que os pesos devem ser armazenados, posso dizer que eles não estão sendo salvos. O registro de data e hora corresponde aproximadamente ao tempo em que comecei a treinar.

Alguém já encontrou esse problema antes?

ILM91
fonte

Respostas:

7

Você executa ModelCheckpointem seus parâmetros padrão (além monitor)?

ModelCheckpointpossui um parâmetro chamado modeque especifica o tipo de métrica a ser usada. modepode levar 3 valores 'min' 'max'e 'auto'(qual é o padrão):

  • min: significa que você deseja minimizar a métrica (por exemplo, a função de perda).
  • max: significa que você deseja maximizar a métrica (por exemplo, precisão).
  • auto: tenta descobrir o que fazer por conta própria. Se você olhar para o código , ele verifica se o nome da métrica contém 'acc'ou se começa com 'fmeasure'. Se sim, define o modo como max, caso contrário, define como min.

No seu caso, você monitora o índice jaccard, que é uma métrica que você deseja maximizar, e deseja que o modo seja definido max. Normalmente, porque "jaccard" contém a string "acc", mesmo que o modo esteja definido para autoele funcione bem.

Se, no entanto, você nomear sua métrica como algo arbitrário (por exemplo my_metric), o modo padrão será definido como min, o que significa que ele armazenará os pesos que alcançarem o menor desempenho em sua métrica, que devem ser os pesos da primeira época.

Sugestão : da próxima vez tente mode='max'ter certeza.

MzdR
fonte
Sim você está certo. Eu havia nomeado minha métrica intersection_over_unione provavelmente estava armazenando pesos com a menor pontuação, que foram os da primeira época. Isso faz muito sentido. Obrigado!
ILM91
De nada. Ainda bem que pude ajudar!
MzdR 16/0918