Releases: vanvalenlab/deepcell-tf
0.12.0rc2
Add option for either batch or layer norm in tracking model @msschwartz21 (#598)
What
- Provide the option to select either
BatchNormalization
orLayerNormalization
inGNNTrackingModel
Why
- This option makes it possible to train the model with a batch size of 1 when layer normalization is enabled.
0.12.0.rc1
🧰 Maintenance
Update TF\_VERSION build arg in docker build workflow @msschwartz21 (#596)
The TF_VERSION build arg has to be updated manually
0.12.0rc
🧰 Maintenance
Update Tensorflow to 2.8 @msschwartz21 (#595)
This PR updates tensorflow to 2.8 and drops support for python 3.6. The following changes were necessary to make this upgrade possible:
- Change imports from
tensorflow.python.keras
totensorflow.keras
which was a change introduced with tensorflow 2.6 - Remove convolutional recurrent layers and their functionality from featurenet and panopticnet. Key functions that were used in the convolutional recurrent layer are no longer available in keras.
- Change imports from
tensorflow.keras
tokeras
:keras_parameterized
,conv_utils
,test_utils
- Drop support for python 3.6
I retrained the nuclear model in the model-registry using this branch of deepcell and the performance was comparable.
To dos before reviewing:
- Fix requirements that reference github branches
- Update setup.py with new requirements
- Remove git installation from Dockerfile
0.11.2
🧰 Maintenance
Update MultiplexSegmentation model @msschwartz21 (#592)
Update the mesmer model from model-registry#15. I'll leave this PR as a draft until @ngreenwald has a chance to test post-processing parameters and determine if any changes are needed.
Update tracking parameters and hashes for new models @MekWarrior (#589)
What
- The nuclear tracking model has been updated in the model registry. This PR redirects the current pointers to grab this new version. The division parameter has also been updated to match the result of the latest parameter sweep.
Why
- The applications should match the latest verified version from the model registry.
📚️ Documentation
Pin `jinja2<3.1` to restore functional docs builds @msschwartz21 (#590)
What
- Pins
jinja2<3.1
indocs/requirements-docs.txt
Why
- The new
jinja2
release deprecates functions that are required forsphinx
.
Update license badge ("Modified Apache 2.0") @joshmoore (#586)
All-
Someone in the OME community recently ran into some confusion with the licensing of deepcell-tf. The license badge lists "Apache 2.0" but the LICENSE file states "Modified Apache 2.0". This proposes use of to increase the clarity.
All the best,
~Josh Moore
diff LICENSE-2.0.txt LICENSE
--- LICENSE-2.0.txt 2022-04-01 14:41:12.806279265 +0100
+++ LICENSE 2022-04-01 14:41:45.921931426 +0100
@@ -1,7 +1,5 @@
-
- Apache License
+ Modified Apache License
Version 2.0, January 2004
- http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
@@ -65,18 +63,19 @@
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
+ this License, each Contributor hereby grants to You a non-commercial,
+ academic perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+ irrevocable copyright license to reproduce, prepare Derivative Works
+ of, publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form. For any other
+ use, including commercial use, please contact: [email protected].
3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
+ this License, each Contributor hereby grants to You a non-commercial,
+ academic perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+ irrevocable (except as stated in this section) patent license to make,
+ have made, use, offer to sell, sell, import, and otherwise transfer the
+ Work, where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
@@ -174,6 +173,10 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+ 10. Neither the name of Caltech nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
0.11.1
🐛 Bug Fixes
Updated `deepcell_tracking.utils` to `deepcell.data.tracking` for importing `Track` and `concat_tracks` @ulisrael (#565)
What
- Updated the tracking notebook so
Track
andconcat_tracks
were imported fromdeepcell.data.tracking
Why
- The location of these files changed in the latest version of deepcell
🧰 Maintenance
Bump version to 0.11.1 @msschwartz21 (#585)
- Update copyright in
deepcell/_version.py
to 2022
Add option for graph attention layer to tracking model @msschwartz21 (#584)
What
- Exposes an option to use the graph attention layer
GATConv
fromspektral
Why
- Allows us to test the impact of different graph layers on the tracking model
Update nuclear and cytoplasm segmentation models from the data-registry @msschwartz21 (#580)
- Updates nuclear segmentation model with the version created by vanvalenlab/data-registry#188
- Update cytoplasm segmentation model with the version created by vanvalenlab/data-registry#164
The same models have been uploaded to the deepcell-models bucket in GCP for deployment through the kiosk.
Build a Docker image and run tests in the container. @willgraf (#575)
What
- Add a new GitHub workflow to build a docker image and run the unit tests inside it.
Why
- This ensures that the docker images work as expected rather than relying solely on the tests passing in the test-runner environment.
Update README with TissueNet publication @ngreenwald (#571)
What
- Update the ReadMe with the link for the paper
Why
- I'll merge this in tomorrow AM once the link goes live
Revert to TensorFlow 2.5.1. @willgraf (#570)
What
- Revert TensorFlow version from 2.5.2 to 2.5.1. The patch is already able to be installed via
setup.py
andrequirements.txt
.
Why
- No 2.5.2 docker images are available, the patch can be installed via pip.
- Fixes #568
0.11.0
🚀 Features
Move tracking data preprocessing into `deepcell.data.tracking` @willgraf (#554)
What
- Update the adjacency matrix data from to a sparse tensor to significantly reduce memory footprint.
- Move
Track
andconcat_tracks
functions fromdeepcell-tracking
todeepcell.data.tracking
. They are really just.trk
preprocessing and are unnecessary outside ofprepare_data
. - Update
temporal_slice
to not slice into padded frames. - Bump
deepcell-tracking
to 0.5.0.
Why
- Continue to upgrade the tracking model to make it more usable.
- The
temporal_slice
fix should improve the precision metrics of the model by not training on padded data.
🐛 Bug Fixes
Update numpy version constraints in pyproject.toml @willgraf (#563)
What
- Update numpy version constraints to match setup.py.
Why
- Fixes #559.
Revert `deepcell.data.tracking.prepare_dataset` to process concatenated Tracks. @willgraf (#561)
What
- Revert the change to
prepare_dataset
that allows it to process .trks files.
Why
- This change caused complications downstream (primarily in using different train and val files) and is not useful.
Update the training a tracking model notebook. @willgraf (#558)
What
- Fix the
filter_and_flatten
function. - Add the
graph_layer
argument to the model call.
Why
- This function was not filtering the padded data properly, fixing it resolves the training issues.
- Improve overall clarity of options for tracking models.
🧰 Maintenance
Bump the version to 0.11.0. @willgraf (#564)
What
- Update the package version to 0.11.0.
Why
- Getting ready for the next release.
0.10.2
0.11.0-rc1
🚀 Features
Move tracking data preprocessing into `deepcell.data.tracking` @willgraf (#554)
What
- Update the adjacency matrix data from to a sparse tensor to significantly reduce memory footprint.
- Move
Track
andconcat_tracks
functions fromdeepcell-tracking
todeepcell.data.tracking
. They are really just.trk
preprocessing and are unnecessary outside ofprepare_data
. - Update
temporal_slice
to not slice into padded frames. - Bump
deepcell-tracking
to 0.5.0.
Why
- Continue to upgrade the tracking model to make it more usable.
- The
temporal_slice
fix should improve the precision metrics of the model by not training on padded data.
0.10.1
🐛 Bug Fixes
Update the models used in the TrackingApplication @willgraf (#555)
What
- Update the tracking model files used by the
CellTracker
application.
Why
- The previous model was trained on data with errors. That data was identified and pruned, the resulting model has significantly better performance.
`lr` is deprecated in favor of `learning_rate` for TensorFlow optimizers. @willgraf (#551)
What
- Convert all optimizer
lr
arguments tolearning_rate
.
Why
- Fixes deprecation warning.
🧰 Maintenance
0.10.0
🚀 Features
Add new GCNN based model architecture for tracking with new `tf.data.Dataset` @MekWarrior (#506)
What
- End-to-End updates for DeepCell's approach to the tracking problem in live-cell imaging. A dataset builder module was added to to more closely follow TensorFlow's preferred style (with tracking dataset object being the first example). The previous LSTM and Siamese Neural Network (SNN) architecture was moved from
featurenet.py
in themodel_zoo
to a new 'tracking.py,` where a graph-based architecture for classification was also installed. This new model required 2 new "merge" layers and an additional loss function compatible with masking out portions of the adjacency matrix. The Tracking Application has been updated to take advantage of this new model and approach.
Why
- These updates represent the natural evolution of the repo's approach to tracking. It addresses key needs to further enable adoption of TF2 and dramatically improves tracking speed.
InferenceTimer callback to measure inference time during training. @willgraf (#508)
What
Add new InferenceTimer
callback to measure inference time for a pre-defined number of samples:
Average inference speed per sample for 100 total samples: 0.00204s ± 0.00158s.
Why
- Fixes #275
Allow preprocessing_fn and postprocessing_fn to be overridden. @willgraf (#521)
What
- Set
preprocessing_fn
andpostprocessing_fn
as arguments toinit
to allow them to be overridden when creating applications.
Why
- This allows the applications to be more flexible and prevents users from subclassing the Application when they use a different preprocessing function.
Add pad_mode as an argument to CytoplasmSegmentation.predict. @willgraf (#524)
Enables overriding the default pad_mode
to use "reflect" by default.
What
- Add
pad_mode
as a new argument toCytoplasmSegmentation.predict
with default value"reflect"
.
Why
- Allows overriding the padding mode for tiling the input. Prevents edge effects for models not trained on zero-padded data.
Support individual parameter passing to Mesmer app @ngreenwald (#545)
What
Previously, the default values for the Mesmer post-processing kwargs were configured such that if the user passed any args to the app, all of the other defaults would be reset. This PR modifies the behavior so that only the kwargs specified by the user are changed, the other defaults remain unchanged
Why
Removes confusing behavior where users would think they're only overriding a single arg, when in fact they would be resetting all of the args back to the deep_watershed
defaults, which are not the same as the Mesmer
defaults
Remove fully convolutional layers from the GNNTrackingModel. @willgraf (#549)
What
- Remove the Fully Connected layers from the tracking decoder
- Enable multiple graph convolutional layer types with new
graph_layer
argument, currently supports GCN and GCS.
Why
- Improve model performance and ease of use.
🐛 Bug Fixes
Set `include_top` to `True` by default in `__create_semantic_head` @willgraf (#528)
What
- Set
include_top
toTrue
by default in__create_semantic_head
- Remove
include_top
from example notebook to avoid confusion
Why
- Fixes #515
Add Semantic data generators to `data_generators.__all__`. @willgraf (#514)
What
- Add Semantic data generators to
data_generators.__all__
.
Why
- Allow sphinx to build the docs, fixes #513.
Application batch prediction @ngreenwald (#540)
What
Modifies the applications to use internal batch prediction function rather than the default model.predict batching functionality. Closes #538
Why
The default model.predict batch function creates a tf.dataset object with all images, not just the specified batch size. This leads to memory issues on the GPU when batch processing tiles from large images.
Fix `sed` commands to only replace `tensorflow` not `tensorflow-addons`. @willgraf (#548)
What
- Use
sed
to replacetensorflow~=
withtensorflow-cpu~=
. Including the~
prevents other deps that start with the wordtensorflow
from getting replaced. - Bump version to 0.10.0-rc.2
Why
- Fixes #547
🧰 Maintenance
Bump TensorFlow to 2.5.1 @willgraf (#543)
What
- Update TensorFlow to the latest 2.5.x release.
Why
- Fixes several CVEs.
Add template for release-drafter workflow @willgraf (#517)
What
- Add template file for
release-drafter
workflow.
Why
- Creates a template to build release drafts with
release-drafter
. - The workflow will be added as a separate PR because it needs this template in the default branch.
Add release-drafter workflow file to automatically release drafts. @willgraf (#518)
What
- Add
release-drafter
workflow YAML file.
Why
- Automatically update release drafts on commits to master.
Install pydot and graphviz to use tf.keras.utils.plot_model @willgraf (#525)
What
- Add
pydot>=1.4.2,<2
tosetup.py
andrequirements.txt
- Install
graphviz
in theDockerfile
Why
- Enable use of
tf.keras.utils.plot_model
out of the box - Fixes #504
Update Nuclear and Cytoplasm Segmentation models. @willgraf (#527)
What
- Update version of both Nuclear and Cytoplasm Segmentation models.
Why
- These new models have been trained using the data registry and are the latest models available.
Update deepcell-toolbox to 0.10.0 @willgraf (#529)
What
- Bump
deepcell-toolbox
version to 0.10.0 - Update
deepcell.metrics
to remove old metrics imports - Update
Mesmer
to use new combineddeep_watershed
Why
- Update to latest version of the toolbox
Support Python 3.9 @willgraf (#531)
What
- Include Python 3.9 in the GitHub Actions testing workflow.
- Update setup.py to include support for Python 3.9.
Why
- TensorFlow 2.5.0 supports Python3.9 and so should DeepCell.
Cache the entire Python environment to speed up build times. @willgraf (#535)
What
- Cache the entire Python environment in the testing GitHub Action workflow.