Skip to content

Releases: vanvalenlab/deepcell-tf

0.12.0rc2

21 May 06:33
c3e67d3
Compare
Choose a tag to compare
0.12.0rc2 Pre-release
Pre-release
Add option for either batch or layer norm in tracking model @msschwartz21 (#598)

What

  • Provide the option to select either BatchNormalization or LayerNormalization in GNNTrackingModel

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

18 May 22:28
fc13bbd
Compare
Choose a tag to compare
0.12.0.rc1 Pre-release
Pre-release

🧰 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

18 May 22:00
9e5fe9a
Compare
Choose a tag to compare
0.12.0rc Pre-release
Pre-release

🧰 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 to tensorflow.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 to keras: 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

18 May 00:47
8c7f768
Compare
Choose a tag to compare

🧰 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 in docs/requirements-docs.txt

Why

  • The new jinja2 release deprecates functions that are required for sphinx.
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 Modified Apache 2.0 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

05 Mar 02:39
dc83ae2
Compare
Choose a tag to compare

🐛 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 and concat_tracks were imported from deepcell.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 from spektral

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)

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 and requirements.txt.

Why

  • No 2.5.2 docker images are available, the patch can be installed via pip.
  • Fixes #568
Update tensorflow in requirements.txt @willgraf (#567)

What

  • Fix bug in #566 with missing change in requirements.txt

Why

  • Finish update of base TensorFlow version.
Bump TF_VERSION to 2.5.2. @willgraf (#566)

What

  • Update TF_VERSION used to 2.5.2

Why

  • Fixes several vulnerabilities

0.11.0

27 Oct 18:03
2568bf5
Compare
Choose a tag to compare

🚀 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 and concat_tracks functions from deepcell-tracking to deepcell.data.tracking. They are really just .trk preprocessing and are unnecessary outside of prepare_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

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.
Minor updates to README @willgraf (#562)

What

  • Pin docutils to 0.16 to resolve readthedocs build failures
  • Add a monthly downloads badge
  • Clean up grammar and whitespace.

Why

  • General improvement for the README
Update models to latest trained tracking model. @willgraf (#560)

What

  • Retrain tracking models using SparseTensors

Why

  • Provide the latest and greatest models in the next release.

0.10.2

27 Oct 00:28
Compare
Choose a tag to compare

🐛 Bug Fixes

Update numpy version constraints in pyproject.toml @willgraf (#563)

What

  • Update numpy version constraints to match setup.py.

Why

  • Fixes Python 3.9 compatibility issue (#559)

0.11.0-rc1

12 Oct 23:36
399f5fb
Compare
Choose a tag to compare

🚀 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 and concat_tracks functions from deepcell-tracking to deepcell.data.tracking. They are really just .trk preprocessing and are unnecessary outside of prepare_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

11 Oct 23:34
80c100f
Compare
Choose a tag to compare

🐛 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 to learning_rate.

Why

  • Fixes deprecation warning.

🧰 Maintenance

Update version to 0.10.1. @willgraf (#556)

What

  • Bump version to 0.10.1

Why

  • Getting ready for patch release before moving to 0.11.0.

0.10.0

26 Aug 00:37
fe14415
Compare
Choose a tag to compare

🚀 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 the model_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

Allow preprocessing_fn and postprocessing_fn to be overridden. @willgraf (#521)

What

  • Set preprocessing_fn and postprocessing_fn as arguments to init 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 to CytoplasmSegmentation.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 to True by default in __create_semantic_head
  • Remove include_top from example notebook to avoid confusion

Why

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 replace tensorflow~= with tensorflow-cpu~=. Including the ~ prevents other deps that start with the word tensorflow from getting replaced.
  • Bump version to 0.10.0-rc.2

Why

🧰 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 to setup.py and requirements.txt
  • Install graphviz in the Dockerfile

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 combined deep_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.

Why

Bump version to 0.10.0. @willgraf (#530)

What

  • Update version to 0.10.0

Why

  • Get ready for the next release
Update model in CellTracking application. @willgraf (#550)

What

  • Update neighborhood encoder and inference model hashes for the newly trained model

Why

  • New model reflects architecture changes and has been trained on diverse data.