Deep Learning na Unb (Brasília) - Parte 1 - Lição 2

Bom dia @Ivan_Cunha.

Um objeto learner é criado pela função cnn_learner() que associa uma função de erro predefinida. Pode acessar essa função de erro por seu atributo learn.loss_func (aqui, FlattenedLoss of CrossEntropyLoss()).

Para obter mais informações sobre essa função de erro, roda doc(learn.loss_func) como na imagem seguinte:

(além disso, pode ler o doc fastai sobre as funções de erro)

Pode mudar a função de erro da forma seguinte:

learn.loss_func = new_loss_func

Pode definir new_loss_func seja simplesmente como uma função usando tensores (previsões e targets) como argumentos, seja uma instancia de uma classe de função de erro. Em 2 cases, pode usar funções/classes do fastai, do pytorch até pode criá-las.

Com dados despropocionais, pode usar por exemplo F.CrossEntropyLoss(weight=tensor_of_weight_for_each_class))

Tópicos sobre esse assunto:

Se precisar mais informações, publica seu notebook e seu dataset para entendermos melhor como ajudá-lo.