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.