0.3.5
This release finally brings model agnostic automatic evaluation to ZenML! Now you can easily use TFMA with any model type to produce evaluation visualizations. This means you can now use TFMA with PyTorch or Scikit - a big win for automated sliced evaluation! It also introduces a new language for differentiation between features, raw features, labels and predictions, in addition to solving a few big bugs in the examples
directory! Read more below.
As has been the case in the last few releases, this release is yet another breaking upgrade.
For those upgrading from an older version of ZenML, we ask to please delete their old pipelines
dir and .zenml
folders and start afresh with a zenml init
.
If only working locally, this is as simple as:
cd zenml_enabled_repo
rm -rf pipelines/
rm -rf .zenml/
And then another ZenML init:
pip install --upgrade zenml
cd zenml_enabled_repo
zenml init
New Features
-
Added a new interface into the trainer step called
test_fn
which is utilized to produce model predictions and save them as test results -
Implemented a new evaluator step called
AgnosticEvaluator
which is designed to work regardless of the model type as long as you run thetest_fn
in your trainer step -
The first two changes allow torch trainer steps to be followed by an agnostic evaluator step, see the example here.
-
Proposed a new naming scheme, which is now integrated into the built-in steps, in order to make it easier to handle feature/label names.
-
Modified the
TorchFeedForwardTrainer
to showcase how to use TensorBoard in conjunction with PyTorch
Bug Fixes + Refactor
- Refactored how ZenML treats relative imports for custom steps. Now, rather than doing absolute imports like:
from examples.scikit.step.trainer import MyScikitTrainer
One can also do the following:
from step.trainer import MyScikitTrainer
ZenML automatically figures out the absolute path of the module based on the root of the directory.
- Updated the Scikit Example, PyTorch Lightning Example, GAN Example accordingly. Now they should work according to their README's.
Big shout out to @SaraKingGH in issue #55 for raising the above issues!