Recent Releases of deepcell
deepcell - 0.12.10
🐛 Bug Fixes
Correct the axis which temporal merges are applied to in tracking model @msschwartz21 (#718)
Also adds a flag to make the image normalization layer in the tracking appearance head configurable🧰 Maintenance
Update DNN dataset and Caliban models @msschwartz21 (#721)
- Update Dynamic Nuclear Net with addition of Hela CTC movies to version 1.1 - Update nuclear segmentation and tracking models after retraining on the updated datasetGeneral maintenance to make CI happy @rossbar (#719)
## What Some general maintenance to deal with failures cropping up from dependencies either updating or falling out-of-sync with one another ### Documentation - Force suppression of warnings from `nbsphinx` which break doc tests. Note: nbsphinx breaks sphinx caching (hence the warning) - Add doc dependencies that nbsphinx needs but are not specified in their deps list - Modify mocking to fix broken access of numpy features during doc build. This means the docs will no longer build without numpy installed ### Linting The newest version of ruff has checks for non-f-string based string formatting. I've silenced these for now - there are much more important issues than string formatting. - Updated ruff configuration and invocation to match latest release. ## Why * General maintenance, keep CI greenRm pins from doc dependencies. @rossbar (#708)
@msschwartz21 IIRC the motivation for many of the pins was issues with list rendering in the datasets and applications galleries. They seem to be resolved locally, if you could double-check the dock preview below and confirm these look as expected then I think we're good to go! ## What * Moving to latest versions of doc deps seems to resolve the issues that motivated the pins in the first place. ## Why * Software maintenance best-practicesCI: Update action versions and ruff incantation @rossbar (#707)
## What * Updates action versions and modifies the `ruff` incantation to use the new flag now that `ruff-format` exists ## Why * The inexorable march of timeAdd SpotNet v1.1 @elaubsch (#706)
This PR adds SpotNet version 1.1, which adds Airlocalize to the set of spot detection methods used to create consensus annotations.📚️ Documentation
DOC: Increase gallery thumbnail size @rossbar (#695)
## What * Minor cosmetic adjustments to increase the size of the thumbnails for the gallery. These values seem like a good balance for the RTD theme. * Also fixes missing mesmer application thumbnail image ## Why * Improve gallery examplesRm pins from doc dependencies. @rossbar (#708)
@msschwartz21 IIRC the motivation for many of the pins was issues with list rendering in the datasets and applications galleries. They seem to be resolved locally, if you could double-check the dock preview below and confirm these look as expected then I think we're good to go! ## What * Moving to latest versions of doc deps seems to resolve the issues that motivated the pins in the first place. ## Why * Software maintenance best-practices
- Python
Published by release-drafter[bot] over 1 year ago
deepcell - 0.12.9
🐛 Bug Fixes
Make creation of base download location more robust. @rossbar (#692)
## What * Fixup for `fetch_data` when a `cachedir` is provided but the parent directory has not yet been created. ## Why * Should make the downloading of assets (i.e. models/datasets) more robust to order and existing directory structure.
- Python
Published by release-drafter[bot] over 2 years ago
deepcell - 0.12.8
🚀 Features
Authenticated SpotNet dataset @elaubsch (#688)
This PR adds the `SpotNet` dataset to the list of new authenticated datasets, following the established pattern. It also adds a `SpotNetExampleData` class, which loads the example data for the [Polaris example notebooks](https://github.com/vanvalenlab/deepcell-spots/tree/master/notebooks). This class deviates slightly from the existing pattern for loading data in order to accommodate for the different file types that need to be loaded. The SpotNet dataset has also been added to the datasets gallery in the documentation.
- Python
Published by github-actions[bot] over 2 years ago
deepcell - 0.12.6
🐛 Bug Fixes
Fix untiling corner-case when no padding in one dimension @rossbar (#673)
## What Closes #665. As noted there, the issue arises from pads of `(0, 0)` which subsequently lead to `0:0` slices in untiling, giving arrays with shape 0 for that dimension. AFAICT, the only way to hit this corner case is when one of the dimensions is smaller than `model_image_shape`, but the other is exactly `model_image_shape`. If both dimensions are `>= model_image_shape`, then `padding` should be `False` if I'm following the logic correctly. ## Why Bugfix🧰 Maintenance
Bump version for 0.12.6 release @msschwartz21 (#674)
Update nuclear segmentation and tracking notebooks @msschwartz21 (#671)
This PR updates the three notebooks that are associated with the tracking paper to match our current scripts for training and running the application. I tested each notebook to verify that everything runs.Update nuclear tracking and segmentation model paths @msschwartz21 (#666)
This PR updates the models used by the `NuclearSegmentation` and `CellTracking` applications to the latest versions associated with the upcoming paper.Cleanup related to transitioning from pylint -> ruff @rossbar (#661)
## What Update codebase to reflect the adoption of `ruff` instead of `pylint`. * Removes pylint configs & pylint ignore flags * Updates the contributor guide ## Why General cleanup.Apply pyupgrade to update code style @rossbar (#662)
## What This PR applies `pyupgrade` (via `ruff`) to automatically modernize some coding patterns. The way this works: you tell `pyupgrade` what minimum version of Python you support (3.7 in our case), then it automatically applies linting patterns based on language features in the minimum supported version. The changes here generally fall in the following categories: * Stop inheriting from object * Remove `from __future__` imports * Remove super() args in cases of single inheritance * Automatically convert older-style string formatting to fstrings. ## Why The main improvement is removing cruft related to old Python versions - perhaps the most notable is the removal of the `from __future__` imports and related `del`s in the `__init__.py` files. The automatic switch to f-strings is also (IMO) a nice improvement.📚️ Documentation
Update nuclear segmentation and tracking notebooks @msschwartz21 (#671)
This PR updates the three notebooks that are associated with the tracking paper to match our current scripts for training and running the application. I tested each notebook to verify that everything runs.
- Python
Published by release-drafter[bot] over 2 years ago
deepcell - 0.12.5
Main highlights: * Add support for Python 3.10 * Add support for numpy version >= 1.24 * Pin scikit-image to <0.20 for compatibility
🐛 Bug Fixes
Correct crop mode bug in tracking application and improve model metadata organization @msschwartz21 (#629)
* The CellTracker had a bug where the crop mode was not being set during inference. This update to the tracking application sets the crop mode correctly. * Reorganizes model metadata and parameters to set of global variables in each application so that they are easier to maintain and update. ~~**Warning:** This PR is dependent on a tracking release after merging https://github.com/vanvalenlab/deepcell-tracking/pull/108.~~🧰 Maintenance
Add CI testing against dev branches of deepcell-toolbox and deepcell-tracking @rossbar (#636)
This should help catch incompatibilities between unreleased versions of libraries in the deepcell ecosystem. ## What * Code remains unaffected - this PR is just dedicated to bolstering testing infrastructure ## Why * The deepcell- libraries are interdependent: `deepcell-tf` depends on `deepcell-tracking` and `deepcell-toolbox`. If there is a change in one of these dependencies, there is no way to tell in the automated test running whether this will break something in `deepcell-tf` until the underlying libraries are released. Testing against the dev branches will catch potential issues sooner, at the expense of being noisier and reducing test specificity (failures can originate from either *deepcell-tf* or the dependencies). Overall however I think this should improve the ability to things consistent across libraries.Prepare for 0.12.5 release @rossbar (#659)
## What * Bump version numbers in final step before next patch releaseUpdate copyright notice to 2023. @rossbar (#658)
## What * Update year in copyright notice. Accomplished with: ```bash find . -type f -exec sed -i "s/2016-2022/2016-2023/g" {} \; ``` ## Why * I plan to do a 0.12.5 release soon (primarily for the scikit-image pin) so I figured I'd get this in as well.Update pydot dependency: soft dep for `keras.utils.plot_model` @rossbar (#647)
## What `pydot` is listed as a dependency, but is not actually used in the project, so should be safe to remove. ## Why Decreasing the dependency footprint is always beneficial. Doubly-so in the case of `pydot`, which has not been actively maintained in a while, see e.g. networkx/networkx#5723Bump action versions to avoid deprecation warnings. @rossbar (#653)
## What The builtin github actions checkout, setup-python, and cache have all been updated to a later version of node. There are now deprecation warnings for the previous versions in the actions logs. ## Why General maintenance to keep the CI in good shape. Note there may be other actions that need to be updated, but I'm starting with the main ones so I can see what remains in the logs after these updates.Pin scikit-image to avoid expired deprecations. @rossbar (#656)
## What * Fix for #655 . ## Why My vote is to pin scikit-image then do a patch release. For the next minor release the pin should be updated to >=0.19.Deprecate entire `export_utils` module @rossbar (#649)
## What A followup to #648. With the deprecation of `export_model_to_tflite`, it is now the case that every function in the `export_utils` module has been deprecated. Therefore I propose to deprecate the entire module. We can do this using the module `getattr` to emit warnings if a user ever tries to access the two public names (i.e. `export_model` or `export_utils`). In practice this means import patterns like: ```python >>> from deepcell.utils import export_model # or export utils ``` will now raise a deprecation warning as well. The module `getattr` was added in Python 3.7 - see [PEP 562](https://peps.python.org/pep-0562/) for details. ## Why Further cleanup related to the `export_model` functions, all of which are deprecated in favor of using `tf.keras.models.save_model` directly.Deprecate export\_model\_to\_tflite @rossbar (#648)
## What Deprecate `export_utils.export_model_to_tflite`. ## Why Notify users who may still be using this function to switch to `tf.keras.models.save_model`. Closes gh-645.Lint with ruff @rossbar (#646)
## What Adopt `ruff` as a linter for the project. See also: vanvalenlab/deepcell-toolbox#137 and vanvalenlab/deepcell-tracking#113. ## Why Primarily to add automated linting for future code submissions, though this PR also contains a few minor fixups to address existing issues. This one's a bit of a bear in terms of files touched and lines modified - I'm more than happy to split this up into smaller PRs to make review easier, just LMK!Update test to use second num\_semantic\_classes input. @rossbar (#644)
## What Closes gh-643. If there's a reason not to use the `nsc2` input, then alternatively we can delete that var. ## Why See gh-643 for context.Add python3.10 support @rossbar (#639)
## What Add support for Python 3.10 ## Why General software updates. See also vanvalenlab/deepcell-tracking#111 and vanvalenlab/deepcell-toolbox#128Fix failures due to invalid numpy scalars. @rossbar (#634)
## What Fixes the failures in `deepcell-tf` for numpy v1.24 by updating to use the ## Why Remove the upper bound on numpy. Marking as draft for now, as this depends on vanvalenlab/deepcell-tracking#112 as well. The tracking tests in `deepcell-tf` will continue to fail until those changes make it into a release.Update Dockerfile to jupyter lab @rdilip (#637)
## What * Removed jupyter notebook callA collection of minor documentation updates @rossbar (#633)
## What The major change is removing the pins to sphinx, docutils, etc. AFAICT the motivating factors for the pins are no longer relevant - see e.g. #320 and #526. Some other minor changes include: - Minor configuration updates to get rid of warnings - Updating intersphinx to point to the stable Python docs instead of 3.7 - Modifying the heading levels in one of the example notebooks to fix the toctree nav column ## Why Sphinx 2.3.1 is 2 major releases behind stable - being pinned this far back will make it difficult to reliably change/update the docs.📚️ Documentation
Rm blurb about Python2/TensorFlow 1 from README. @rossbar (#651)
## What Removing blurb from README about running with Python2/TensorFlow 1. ## Why The chances of this working out of a containerized environment is practically nil and certainly not worth the effort for users. I'm also using this change as a test for the RTD docs preview feature in CI.A collection of minor documentation updates @rossbar (#633)
## What The major change is removing the pins to sphinx, docutils, etc. AFAICT the motivating factors for the pins are no longer relevant - see e.g. #320 and #526. Some other minor changes include: - Minor configuration updates to get rid of warnings - Updating intersphinx to point to the stable Python docs instead of 3.7 - Modifying the heading levels in one of the example notebooks to fix the toctree nav column ## Why Sphinx 2.3.1 is 2 major releases behind stable - being pinned this far back will make it difficult to reliably change/update the docs.
- Python
Published by github-actions[bot] almost 3 years ago
deepcell - 0.12.4
🧰 Maintenance
MAINT: Pin numpy to avoid errors due to expired scalar deprecations @rossbar (#630)
Resolve failures in deepcell due to code that depends on numpy features that were removed in numpy v1.24.Bump model versions for nuclear segmentation and tracking @msschwartz21 (#627)
Updates the nuclear segmentation model from model-registry # 34 and the tracking model from model-registry # 36
- Python
Published by release-drafter[bot] about 3 years ago
deepcell - 0.12.3
🧰 Maintenance
Swap m2r with m2r2 and update version number to 0.12.3 @msschwartz21 (#623)
Bump version number for new release Also includes a change from `m2r` to `m2r2` for our documentation pipeline. `m2r` is no longer being maintained so it has been replaced with a fork with more active maintenance. https://github.com/CrossNox/m2r2Add support for EfficientNetV2 backbones to the get_backbone utility function @msschwartz21 (#619)
## What * Add support for EfficientNetV2 backbones to the get_backbone utility function ## Why * Exposes EfficientNetV2 backbones for use in deepcell model architectures
- Python
Published by release-drafter[bot] over 3 years ago
deepcell - 0.12.2
🐛 Bug Fixes
Add matplotlib to setup.py @msschwartz21 (#610)
## What * Add matplotlib requirement to setup.py ## Why * Pip installations used the requirements listed in setup.py so currently matplotlib is not installed when pip installing deepcellUpdate mesmer post-processing args @ngreenwald (#609)
## What Updated the post-processing parameters for the Mesmer model. Also updates the notebook to describe how post-processing can be modified. ## Why The newly retrained model has different parameters that give the best results. In addition, I've gotten questions from a few different people about how to tweak the model output, having it in the notebook will make it easy for people to see the effects.
- Python
Published by release-drafter[bot] over 3 years ago
deepcell - 0.12.1
🚀 Features
Create TFRecords for tracking datasets @vanvalen (#602)
## What * Added functionality to create TFRecords for tracking datasets ## Why * As the training datasets grow in size, they are no longer able to fit in memory (as is the case with image generators). Adding functionality for TFRecords will let us train on larger datasets as they are loaded dynamically from disk during training rather than into memory all at once.🐛 Bug Fixes
Fix tracking model bug that pinned n_filters, encoder_dim and embedding_dim to 64 @vanvalen (#606)
## What * Fixed a bug that required the tracking model to have n_filters, encoder_dim, and embedding_dim be pinned to 64 ## Why * Model optimization is going to require us to change these parameters to improve performance and reduce model size. This pull request makes that substantially easier by fixing this bug.🧰 Maintenance
Bump version to 0.12.1 @msschwartz21 (#605)
Expose option for fixed crops in the Track data object @vanvalen (#607)
## What * Modify the Track class so that it allows hooks into get_image_features for crop_mode and norm ## Why * Creating the appearance image feature by cropping and resizing removes information about cell size that the model can use to make more accurate tracking predictions. A previous update to deepcell-tracking (https://github.com/vanvalenlab/deepcell-tracking/pull/98) introduced the crop_mode (either 'fixed' or 'resize') and norm flags to get_image_features. This pull request exposes these flags to the Track class.Bump `deepcell-tracking` to 0.6.0 @msschwartz21 (#603)
## What * Bump `deepcell-tracking` to the new minor release * Update imports to match the reorganization introduced in this releaseUpdate the docstring for `format_output_mesmer` @curlup (#601)
## What Doc-string for `format_output_mesmer` is now correctly saying "ValueError: if model output list is not len(4)" ## Why Because `format_output_mesmer` code diverged from the doc in what is expected length of model output list
- Python
Published by release-drafter[bot] over 3 years ago
deepcell - 0.12.0
🚀 Features
Introduce functions for reading and writing TF Records for segmentation data @vanvalen (#597)
## What Included functions to save datasets as tfrecords and load them into tf.data.Dataset objects ## Why As our training datasets grow, it is becoming difficult to load full datasets into memory. By introducing support for tfrecords, we can load portions of datasets from disk on the fly during training.🧰 Maintenance
Update models after retraining on deepcell 0.12.0rc @msschwartz21 (#599)
## What * Update models with versions that were trained on tensorflow 2.8 (https://github.com/vanvalenlab/model-registry/pull/17) ## Why * Models should use the same version of tensorflow for predictions as they were trained onAdd 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.Update TF_VERSION build arg in docker build workflow @msschwartz21 (#596)
The TF_VERSION build arg has to be updated manuallyUpdate 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.
- Python
Published by release-drafter[bot] almost 4 years ago
deepcell - 0.12.0rc2
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.
- Python
Published by release-drafter[bot] almost 4 years ago
deepcell - 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
- Python
Published by release-drafter[bot] almost 4 years ago
deepcell - 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` 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: - [x] Fix requirements that reference github branches - [x] Update setup.py with new requirements - [x] Remove git installation from Dockerfile
- Python
Published by release-drafter[bot] almost 4 years ago
deepcell - 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` 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 [](https://img.shields.io/badge/license-Modified%20Apache%202-blue) to increase the clarity. All the best, ~Josh Moorediff 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: vanvalenlab@gmail.com.
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.
```
- Python
Published by release-drafter[bot] almost 4 years ago
deepcell - 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` 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 2022Add 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 modelUpdate nuclear and cytoplasm segmentation models from the data-registry @msschwartz21 (#580)
* Updates nuclear segmentation model with the version created by https://github.com/vanvalenlab/data-registry/pull/188 * Update cytoplasm segmentation model with the version created by https://github.com/vanvalenlab/data-registry/pull/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 liveRevert 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](https://github.com/tensorflow/tensorflow/releases/tag/v2.5.2)
## Why
* Fixes several vulnerabilities
- Python
Published by github-actions[bot] almost 4 years ago
deepcell - 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` 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 * 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.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 READMEUpdate 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.
- Python
Published by willgraf over 4 years ago
deepcell - 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` 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.
- Python
Published by github-actions[bot] over 4 years ago
deepcell - 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 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.
- Python
Published by github-actions[bot] over 4 years ago
deepcell - 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 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 * Fixes #275Allow 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` defaultsRemove 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 * Fixes #515Add 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 * 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](https://github.com/tensorflow/tensorflow/releases/tag/v2.5.1).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 #504Update 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 toolboxSupport 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 * [Drastically speed up build times](https://medium.com/ai2-blog/python-caching-in-github-actions-e9452698e98d).Bump version to 0.10.0. @willgraf (#530)
## What * Update version to 0.10.0 ## Why * Get ready for the next releaseUpdate 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.
- Python
Published by github-actions[bot] over 4 years ago
deepcell - 0.9.0
0.9.0
This release updates TensorFlow to 2.4.1 which drops support for Python 3.5.x.
Features
- Update Layers and Losses for mixed-precision training. (#490)
- Use a dict of names and num_classes to name PanOpticNet semantic heads. (#498)
Bugfixes
- Fix architectures for
ScaleDetectionandLabelDetectionmodels. (#491) - Fix
SemanticMovieIteratorto prevent saving duplicate images for every batch. (#492) - Update
SiameseDataGeneratorandsiamese_modelfor multichannel data. (#495) - Deprecate
in_shapeargument forLocationlayers. (#497) - Pin
deepcell-toolboxto 0.9.x anddeepcell-trackingto 0.3.x. (#500)
Breaking Changes
- Update
tensorflowversion to 2.4.1, drop support for Python 3.5. (#476) - Migrate
RetinaMaskmodels todeepcell-retinamask. (#486)
- Python
Published by willgraf almost 5 years ago
deepcell - 0.8.4
0.8.4
Features
- Updated the
MultiplexSegmentationmodel (#467) - Publish
deepcell-cpuon new releases (#472) - Update tracking model, data generators, and application for TensorFlow 2 (#470, #473)
Bugfixes
Application._resize_outputhandles lists of tensors and single tensor outputs (#468)
- Python
Published by willgraf about 5 years ago
deepcell - 0.8.0
0.8.0
This release supports TensorFlow 2.3.1+ and drops support for Python 2.7.
Features
- Migrate to TensorFlow 2.3.1 (#442)
pip install deepcellis now supported. (#461)ApplicationsloadSavedModelsand are decoupled from the current model architecture. (#460)
Bugfixes
- Reduce the number of installed packages in the Dockerfile (#442)
- Removed
training.pyfrom all reference notebooks (#458). - Fixed a
dtypebug fordisctransforms (#442).
Breaking Changes
- Python 2.7 is no longer supported
- TensorFlow < 2.3.1 is no longer supported.
- Python
Published by willgraf over 5 years ago
deepcell - 0.7.0
0.7.0
This will be the final release that supports Python 2.7 and TensorFlow 1.X.
Features
- Visualize RGB data with outlines (#441)
- Remove the Resize2D layer. (#443)
- Reduce ImageDataGenerator memory footprint. (#436)
- Create CellTracking application object, various application bugfixes. (#444)
- Use
keras.utils.custom_object_scopeandkeras.testing_utils.layer_testfor testing layers. (#447) - Migrate CI/CD from TravisCI to GitHub Actions. (#449, #451, #453)
- Improve docstring RST formatting and include the RTD config file (#448)
- Update weights and post-processing parameteres for
deepcell.applications.MultiplexSegmentation. (#434, #452)
Bugfixes
- Do not always save the final model weights in training.py. (#435)
- Fix typo in README. (#440)
- Add K.epsilon to the denominator in
whole_imagenormalization. (#446)
- Python
Published by willgraf over 5 years ago
deepcell - 0.6.0
0.6.0
Features
- Add
CroppingDataGeneratorto randomly crop form the source images. (#413) SemanticDataGeneratorsupports multiple labels. (#344)- Update the
MultiplexSegmentationapplication with new weights and post-processing (#407, #413, #422, #424, #425, #429, #431) - Added the
SemanticMovieDataGeneratorfor 3D data. (#419)
Bugfixes
- Updated README typos and URLs. (#401, #402)
- Move
compute_overlaptodeepcell_toolbox. (#409) - Improve performance of
pixelwisetransform. (#415) - Fix
PanopticNetmodel for 3D data. (#416) - Pin version of opencv for better python compatibility (#422)
- Python
Published by willgraf over 5 years ago
deepcell - deepcell-tf 0.5.0
0.5.0
This release supports TensorFlow 1.14.x and 1.15.x as well as python 2.7 and 3.6+.
Features
Updated
match_nodesto return IoU directly instead of indices. (#267)Added
get_anchor_parametersto automatically determine feature pyramid parameters (#269)Added new custom layer,
ConvGRU2D(#278)Updated
layer_testtesting routine (#279)Travis will now tag and push a
latest-gpuimage with every release. (#281)Speed up the pixel-wise transform (#286, #295)
Add temporal information options to the featurenets. (#282)
Improve docstrings for sphinx compatibility. (#310)
Improved data quality for cytoplasm and phase data. (#318)
Added new
model_zoo.PanopticNetandSemanticDataGeneratorto generalize a model for learning multiple tasks simultaneously, both regression and classification. (#319)Added
Applicationobjects to easily use models with a simple API. (#341)Simplified transform names (#376).
Bugfixes
deepcell-trackinghas been updated to 0.2.4, which resolves some ISBI function bugs. (#267)Updated
tf.image.resize_imagestotf.image.resizeas the former is deprecated. (#268)Correct upper limit for clipping boxes (#277)
Fixed broken data links and README links (#292, #300, #307)
Migrate general utility functions into a new package
deepcell-toolbox(#319).Fixed RetinaNet interpolation bug (#357)
Breaking Changes
Support for TensorFlow 1.10.x - 1.13.x has been dropped.
The default
TF_VERSIONin the Dockerfile has been updated to1.14.0-gpu, as many users were expecting this. (#281, #311)MaskRCNNhas been refactored toRetinaMask(#360)./scriptshas been migrated to/notebooks(#374).deepcell.notebookshas been removed (#390).
- Python
Published by willgraf almost 6 years ago
deepcell - deepcell-tf 0.4.0
0.4.0
This release fully supports Tensorflow 1.10.x through 1.14.x, and Python 2.7, 3.5, 3.6. Future releases will drop support for TensorFlow 1.10.x, 1.11.x 1.12.x, 1.13.x as well as dropped support for Python 3.5.
Features
Replaces
tracking.pyandtracking_utils.pywith a dependency on the pip packagedeepcell_tracking. (PR #254)Break
image_generators.pyinto a submodule with each family of generators in a different file. (PR #258)
Bugfixes
Updated
reshape_matrixto work with non-square matrices. (PR #257)Fixed namespace imports. (PR #262)
3D FeatureNet models can now be re-instantiated with a new framesperbatch value. (PR #250)
Breaking Changes
- Updates the
ImageNormalizationlayers to not have trainable weights (PR #250), which unfortunately means that models trained in versions <0.4.0 cannot be loaded with version 0.4.0+.
Known Issues
- While this release supports TensorFlow 1.12.x and 1.13.x, there have been compatibility issues with these versions in the past (#244 and #245).
- Python
Published by willgraf over 6 years ago
deepcell - 0.3.0 3D Object Detection with ReinaNet and RetinaMask
frames_per_batch was added to both RetinaNet and RetinaMask which have both been adapted for 3D data if frames_per_batch is greater than 1.
Other bugs were fixed:
* Issue #225 was resolved, enabling compatibility testing with TensorFlow 1.14.0.
* Issue #219 was also resolved and tests were improved to ensure sequential labels for reshaped data.
* Tests for deepcell.model_zoo and deepcell.applications were also significantly improved by parameterizing tests instead of using a for-loop.
- Python
Published by willgraf over 6 years ago
deepcell - 0.2.0 Cell Tracking Pre-Print
Compatible with TensorFlow versions 1.10+, this release forms the basis for the cell tracking and benchmarking algorithms put forth in the publication "Accurate cell tracking and lineage construction in live-cell imaging experiments with deep learning" (https://doi.org/10.1101/803205).
- Python
Published by willgraf over 6 years ago
deepcell - 0.1.0 Support for TensorFlow verions 1.8+
As we strive to support the latest versions of TensorFlow, we are forced to deprecate certain older versions of TensorFlow. This release of deepcell-tf supports TensorFlow 1.8+, however, all further development will be built for TensorFlow versions 1.10+.
- Python
Published by willgraf over 6 years ago