Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update config for resnet50 #1

Merged
merged 9 commits into from
Mar 4, 2018

Conversation

John1231983
Copy link
Contributor

This is the config for resnet50 that obtain 0.41 LB in my code also use maskRCNN. I did not fully test this PR. I will update the score using this PR

Better config
Better config
Better config
Use resnet50 pretrain
Update imagenet pretrain and delete heads training
@killthekitten
Copy link
Owner

killthekitten commented Mar 2, 2018

Thanks @John1231983!

But I'd like to stick with the default config for now to make it easier for newcomers to spot the difference compared to the original repo.

Could you spend some more of your time to add your config as a separate entity and make it possible to chose the desired config as an argument?

@John1231983
Copy link
Contributor Author

Sure. I will update it when I complete the running. It may be tomorrow. Now, I am running your code with the above setting. Note that, using USE_MINI_MASK=True will save memory

Better config for resnet50
Update learning rate and weight decay
For fixing the problem `Evaluation Exception: Index was outside the bounds of the array. `
For fix the problem of submission
@killthekitten killthekitten merged commit 6881764 into killthekitten:master Mar 4, 2018
@killthekitten
Copy link
Owner

@John1231983 I've merged your branch as is, I think it should be fine for the moment. Please, confirm it works for you.

@John1231983
Copy link
Contributor Author

Yes. It worked with it. I achieve 0.4+ for this configure. Let check in your machine and let me know if it cannot achieve the number. Btw. the function below may the reason make your training code is too slow : 2s/step, while without it takes 1s/step. Do you think the below script is necessary?

        Handle occlusions
        occlusion = np.logical_not(masks[:, :, -1]).astype(np.uint8)
        for i in range(count-2, -1, -1):
            masks[:, :, i] = masks[:, :, i] * occlusion
            occlusion = np.logical_and(occlusion, np.logical_not(masks[:, :, i]))

killthekitten added a commit that referenced this pull request Mar 4, 2018
This reverts commit 6881764, reversing
changes made to 0222d46.
killthekitten added a commit that referenced this pull request Mar 4, 2018
@killthekitten
Copy link
Owner

@John1231983 nice catch, removed that one too. No need for this, I think.

Btw, since we already discuss your config in this PR: how do you perform validation?

P.S. wasn't sure how to properly apply our changes to the original code, so I reverted everything for a couple of times... don't ask :D

@John1231983
Copy link
Contributor Author

For validation, we can separate training to 90 % for training and 10% for validation. However, i did not change it. Just run full training set and submit to Kagge system to see the LB.

@killthekitten
Copy link
Owner

@John1231983 just FYI, it works for me, .302LB after 32 epochs

@John1231983
Copy link
Contributor Author

Great. I hope it achieve 0.4 after 100 epochs. Then reduce learing rate /100 and train 50 epochs you can have 1 to 2 % gain

@John1231983
Copy link
Contributor Author

Hi. Sorry i miss one location for changing. It must be Adam instead of SGD and learning rate is 1e-4. For that, you can achieve 0.4 LB

@killthekitten
Copy link
Owner

@John1231983 don't you mind sending another PR for that? Btw right now it gives .361

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants