Skip to content

0.10.0

Compare
Choose a tag to compare
@github-actions github-actions released this 26 Aug 00:37
· 84 commits to master since this release
fe14415

🚀 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.