Release Notes
We're happy to announce that `carefree-learn` released `v0.4.x`, which is much clearer, much more unified, and also much more lightweight!
Main Changes
In the `v0.3.x` era, `Pipeline`s (e.g., `MLPipeline`, `CVPipeline`) are implemented in a tricky and unpleasant way - they overly depend on inheritance, causing hundreds of thousands of duplicated / unneeded / workaround codes.
Same problems also occur at the `data` module: `MLData` is powerful but nobody can maintain it, `CVData` utilizes third party libraries pretty well but nobody knows how to use it.
In `v0.4.x`, we abstracted out the true `Pipeline` structure: it should just be a series of `Block`s. When it is running, each `Block` do its own job. When saving/loading, each `Block` saves/loads its own assets.
Under this design, we are able to refactor the original `Pipeline`s into a [unified one](https://github.com/carefree0910/carefree-learn/blob/dev/cflearn/pipeline/core.py). What's more exciting is that the `data` module can also be refactored into the new `Pipeline` structure, like [this](https://github.com/carefree0910/carefree-learn/blob/be4b7298b580c170685b6eeda974f1c47ee54bee/cflearn/schema.py#L535).
Documentation
`v0.4.x` is still under heavy development, so currently the documentation is out of date. I'll try to update it ASAP and before that, it might be a good start to look at the [examples](https://github.com/carefree0910/carefree-learn/tree/dev/examples), which cover quite a few use cases!