-
Notifications
You must be signed in to change notification settings - Fork 383
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
Change regression task to timm support #854
Conversation
Pulling out discussion from the comments, I think it makes most sense to call the deep learning model, "model", in the trainer code. In semantic segmentation tasks this will be a "unet", "deeplabv3+", or whatever else smp accepts, as that is the "model" that is being used, elsewhere this will be any timm architecture. In the segmentation trainer, it makes sense to call the encoder, "encoder". I.e. what Adam said above but "encoder" instead of "backbone" (it makes sense to use "backbone" for BYOL and other SSL trainers). |
Let me know if this is what you had in mind and I understood you correctly. I will then open another PR to change the segmentation task names. |
Yep, exactly that! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One minor change and I think this is ready to go.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would love to get one more review from someone before merging
@adamjstewart looking back through the comments, I interpret the following:
|
Hmm, I would personally use "model" for the high-level model in all tasks and "encoder" iff that model has the ability to replace some kind of encoder/backbone with a pre-trained one. I guess I don't see a big distinction between SL encoders and SSL backbones, but I'll let @calebrob6 clarify. |
Encoder or backbone is fine for BYOL |
Okay so,
is the final verdict? |
LGTM! |
* change regression task to timm support * add docstring about available models * typo again * failing test * change name * change name * expose all available models * docstring list_models * Update torchgeo/trainers/regression.py Co-authored-by: Caleb Robinson <calebrob6@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
This PR changes the
RegressionTask
to support Timm models instead of torchvision.models for greater model variety and consistency, because Timm is used in the other tasks as well.num_outputs
which allows the regression task to have multiple regression outputs, either if there are multiple regression targets or some form of probabilistic neural networksClassificationTask
after Docs/trainers for Classification and Segmentation Task #852 is merged with the exception of the loss argument because regression only has mse loss at the moment