Closed vitalwarley closed 11 months ago
You are about to run mtcf as a batch (9 trials)
batch-size: [200, 400, 600]
device: '0'
end-lr: 0.0005
l2-factor: 0.0002
loss-log-step: 100
num-epoch: [4, 8, 12]
output-dir: exp
root-dir: rfiw2021/Track1
start-lr: 0.001
train-dataset-path: rfiw2021/Track1/sample0/train_sort.txt
val-dataset-path: rfiw2021/Track1/sample0/val_choose.txt
weights: weights/ms1mv3_arcface_r100_fp16.pth
Continue? (Y/n)
Despachado na RIG2. Logo mais trago detalhes sobre como fiz.
Os experimentos não convergiram, provavelmente por causa da perda que eu estava usando (CrossEntropyLoss
). Ajustei o código para usar a BCEWithLogits
, que inclusive é a correta pelo artigo.
Mais épocas são necessárias
You are about to stage trials for mtcf as a batch (9 trials)
batch-size: [200, 400, 600]
device: '0'
end-lr: 0.0005
l2-factor: 0.0002
loss-log-step: 100
num-epoch: [16, 20, 24]
output-dir: exp
root-dir: rfiw2021/Track1
start-lr: 0.001
train-dataset-path: rfiw2021/Track1/sample0/train_sort.txt
val-dataset-path: rfiw2021/Track1/sample0/val_choose.txt
weights: weights/ms1mv3_arcface_r100_fp16.pth
Acima epoch_acc
é provinda do conjunto de treino, enquanto epoch_auc
é provinda do conjunto de validação para escolha do limiar de z (probabilidade de ser kin ou non-kin).
De fato, mais épocas ajudaram. Um batch maior também, dentro da mesma época.
You are about to stage trials for mtcf as a batch (9 trials)
batch-size: [1024, 2048, 3072]
device: '0'
end-lr: 0.0005
l2-factor: 0.0002
loss-log-step: 100
num-epoch: [50, 100, 150]
output-dir: exp
root-dir: rfiw2021/Track1
start-lr: 0.001
train-dataset-path: rfiw2021/Track1/sample0/train_sort.txt
val-dataset-path: rfiw2021/Track1/sample0/val_choose.txt
weights: weights/ms1mv3_arcface_r100_fp16.pth
Continue? (Y/n)
Acho que será o suficiente para resgatar o melhor modelo e avaliar nos demais conjuntos.
Ainda há alguns experimentos em curso, como esse abaixo
Todavia dificilmente vão passar de >0.7. Dado que os autores não reportam AUC, mas apenas acurácia de no test set, não temos como saber se a reprodução foi satisfatória em termos de resultados. Por outro lado, em termos de arquitetura, hiperparâmetros, eu acredito que não foi satisfatória. Listo os motivos abaixo.
negative_slope
da função de ativação leaky_relu
, como fiz aqui
Várias possibilidades poderiam ser implementadas nessa estratégia, mas não sinto que vale a pena o esforço por agora, dado a diferença entre para o AUC nela frente ao SOTA2021.
Resultados do melhor modelo até agora (há um experimento em curso ainda):
Os autores conseguirem 0.736 de acurácia. Logo, não consegui reproduzir os resultados.
41
https://arxiv.org/pdf/2006.01615