-
Notifications
You must be signed in to change notification settings - Fork 3
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
Single-cell phenotyping with contrastive learning #113
Conversation
@ziw-liu looks like you are powering through the refactor. Awesome. Couple of notes:
|
this might increase code analysis time a tiny bit but should not have any effect at runtime
and fix indexing
* updated prediction code * updated predict code * updated code * fixed the stem and forward pass (#115) * fixed the stem and forward pass * update forward calls to encoder * self.encoder -> self.model * nits * l2 normalize projections * black compliance * black compliance * WIP: Save progress before merging * updated contrastive.py * stem update * updated predict code * Delete viscy/applications/contrastive_phenotyping/PCA.ipynb * pushing dataloader test updated * pca deleted * training and dataloader test * updated structure * deleted files * updated training merged files * removed commented code * removed uneeded code * removed uneeded code * removed comments * snake_case * fixed CI issues * removed num_fovs --------- Co-authored-by: Shalin Mehta <[email protected]>
@mattersoflight does #116 need to be fixed in this PR? |
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.
@ziw-liu #116 can be handled in the next PR. I will be able to review that PR. If @alishbaimran is able to train models with this branch, please merge.
Please also clean up multiple versions of code for constructing stem.
@@ -65,7 +65,7 @@ def _get_convnext_stage( | |||
|
|||
|
|||
class UNeXt2Stem(nn.Module): | |||
"""Stem for UNeXt2 networks.""" | |||
"""Stem for UNeXt2 and ContrastiveEncoder networks.""" |
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.
@ziw-liu I wrote the StemDepthtoChannels
to work for resnet and convnext models. Can you test the construction of UNeXt2 model with this stem and report back if the construction works? If it does, we should deprecate other classes for building the stem to avoid confusion in the future.
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.
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.
I think we should delete this and have only one (flexible) implementation of stem.
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.
* first draft of contrastive learning model * fixed stem and projection head, drafted lightning module * Contrastive_dataloader (#99) * initial dataloader.py * Update dataloader_test.py * Update dataloader_test.py * Update dataloader_test.py * Update dataloader_test.py * rename training script * move contrastive network to viscy.representation module * Update hcs.py * refactored class names * correct imports * cleaner names for model arch and module * new imports * Fixed epoch loss logging and WandB integration in ContrastiveModule * updated training_script.py * Update hcs.py * contrastive.py * engine.py * script to test data i/o speed from different filesystems * moved applications folder to viscy.applications so that pip install -e . works. * add resnet50 to ContrastiveEncoder * rename training_script.py to training_script_resnet.py * test dataloader on lustre and vast * move training_script_resnet to viscy.applications so that `pip install -e .` works * refined the tests for contrastive dataloader * sbatch script for dataloader * delete redundant module * nits: updated the model construction of contrastive resnet encoder. * Updated training script, HCS data handling, engine, and contrastive representation * Fix normalization, visualization issues, logging and multi-channel prediction * updated training and prediction * update training and prediction script * formatting * combine the application directories * lint * replace notebook with script * format script * rename scripts conflicting with pytest * lint application scripts * do not filter all warnings * log instead of print * split data modules by task * clean up imports * update typing * use pathlib * remove redundant file * updated predict.py * better typing * wip: triplet dataset * avoid forward ref this might increase code analysis time a tiny bit but should not have any effect at runtime * check that z range is valid and fix indexing * clean up and explain random sampling * sample dict instead of tuple and include track index * take out generic HCS methods for reuse * implement TripletDataModule * use new batch type in engine * better typing * read normalization metadata * docstring for data module * drop normalization metadata after transformation * remove unused import * fix initial crop size * Infection state (#118) * updated prediction code * updated predict code * updated code * fixed the stem and forward pass (#115) * fixed the stem and forward pass * update forward calls to encoder * self.encoder -> self.model * nits * l2 normalize projections * black compliance * black compliance * WIP: Save progress before merging * updated contrastive.py * stem update * updated predict code * Delete viscy/applications/contrastive_phenotyping/PCA.ipynb * pushing dataloader test updated * pca deleted * training and dataloader test * updated structure * deleted files * updated training merged files * removed commented code * removed uneeded code * removed uneeded code * removed comments * snake_case * fixed CI issues * removed num_fovs --------- Co-authored-by: Shalin Mehta <[email protected]> --------- Co-authored-by: Shalin Mehta <[email protected]> Co-authored-by: Alishba Imran <[email protected]> Co-authored-by: Alishba Imran <[email protected]> Co-authored-by: Alishba Imran <[email protected]> Co-authored-by: Duo Peng <[email protected]>
This reverts commit 3184b76.
Self-supervised learning of single-cell image patches with contrastive triplet loss.