arnoweng / CheXNet

A pytorch reimplementation of CheXNet
565 stars 216 forks source link

Did you use data augment? #2

Closed billhhh closed 6 years ago

billhhh commented 6 years ago

Thx for sharing the code! did you use data augment? and this seems only testing code, would you mind share training code also

Thanks

arnoweng commented 6 years ago

I've tried several data augmentation methods that work well in other domains, but they do not work in this task somehow. The training code is adopted from PyTorch examples and you can easily find them in offical page.

jkhhh commented 6 years ago

I ran your trained model on the testset, but it seems that something has been done to adjust the mean probability of each disease. Such values will not be obtained by the original training strategy (If my experiment is correct).

loss

billhhh commented 6 years ago

If without data augment, how to address data positive & negtive uneven problem? I think the original paper use data augment...

ZhichengHuang commented 6 years ago

what method do you use to address the class unbalanced?

arnoweng commented 6 years ago

The problem can be addressed by oversampling positive classes or changing sample weights which are elaborated in original paper v1 and v2 respectively.

billhhh commented 6 years ago

I do not think the v2 changed the weights, the paper says image, and v1 says "We also augment the training data with random horizontal flipping."

billhhh commented 6 years ago

Hello, so which way do you use? upsampling or changing sample weights?

billhhh commented 6 years ago

Sorry, I did not realize you have metioned "the up sampling or change weight" is about pneumonia binary classification problem. what I was asking is all about 14 classes classification problem

chaoyan1037 commented 6 years ago

When training the model, did you freeze the model parameters except for the modified parts? Or, just train all parameters? @arnoweng

arnoweng commented 6 years ago

@chaoyan1073 I have tried both. This released model was trained without freezing parameters.

chaoyan1037 commented 6 years ago

@arnoweng Thanks for your kind reply! I have tried both, too. However, In my case, freezing partial parameters will produce better AUC score 0.810. But it is still not as good as your 0.847. But I did not adopt any sampling strategies at present. I will try some sampling skills and see if them helps.

zoogzog commented 6 years ago

Thank you @arnoweng for sharing the code. I have implemented the training procedure, and strangely enough, was able to obtain better AUROC score (0.8508). Following imagenet example I used random crops and flips during training stage, learning rate was set to 0.0001.