Skip to content

Commit 1be416f

Browse files
authored
Release 0.18.0 (#867)
* bump u8darts * update contribution guidelines * update changelog * separate install page * update readme
1 parent b4bd2b4 commit 1be416f

File tree

5 files changed

+204
-157
lines changed

5 files changed

+204
-157
lines changed

CHANGELOG.md

+57-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,41 @@
44
Darts is still in an early development phase and we cannot always guarantee backwards compatibility. Changes that may **break code which uses a previous release of Darts** are marked with a "🔴".
55

66
## [Unreleased](https://github.com/unit8co/darts/tree/master)
7-
[Full Changelog](https://github.com/unit8co/darts/compare/0.17.1...master)
7+
[Full Changelog](https://github.com/unit8co/darts/compare/0.18.0...master)
8+
9+
## [0.18.0](https://github.com/unit8co/darts/tree/0.17.1) (2022-03-22)
10+
### For users of the library:
11+
12+
**Improved**
13+
- `LinearRegressionModel` and `LightGBMModel` can now be probabilistic, supporting quantile
14+
and poisson regression. [#831](https://github.com/unit8co/darts/pull/831),
15+
[#853](https://github.com/unit8co/darts/pull/853) by [Gian Wiher](https://github.com/gnwhr).
16+
- New models: `BATS` and `TBATS`, based on [tbats](https://github.com/intive-DataScience/tbats).
17+
[#816](https://github.com/unit8co/darts/pull/816) by [Julien Herzen](https://github.com/hrzn).
18+
- Handling of stochastic inputs in PyTorch based models. [#833](https://github.com/unit8co/darts/pull/833)
19+
by [Julien Herzen](https://github.com/hrzn).
20+
- GPU and TPU user guide. [#826](https://github.com/unit8co/darts/pull/826)
21+
by [@gsamaras](https://github.com/gsamaras).
22+
- Added train and validation loss to PyTorch Lightning progress bar.
23+
[#825](https://github.com/unit8co/darts/pull/825) by [Dennis Bader](https://github.com/dennisbader).
24+
- More losses available in `darts.utils.losses` for PyTorch-based models:
25+
`SmapeLoss`, `MapeLoss` and `MAELoss`. [#845](https://github.com/unit8co/darts/pull/845)
26+
by [Julien Herzen](https://github.com/hrzn).
27+
- Improvement to the seasonal decomposition [#862](https://github.com/unit8co/darts/pull/862).
28+
by [Gian Wiher](https://github.com/gnwhr).
29+
- The `gridsearch()` method can now return best metric score.
30+
[#822](https://github.com/unit8co/darts/pull/822) by [@nlhkh](https://github.com/nlhkh).
31+
- Removed needless checkpoint loading when predicting. [#821](https://github.com/unit8co/darts/pull/821)
32+
by [Dennis Bader](https://github.com/dennisbader).
33+
- Changed default number of epochs for validation from 10 to 1.
34+
[#825](https://github.com/unit8co/darts/pull/825) by [Dennis Bader](https://github.com/dennisbader).
35+
36+
**Fixed**
37+
- Fixed some issues with encoders in `fit_from_dataset()`.
38+
[#829](https://github.com/unit8co/darts/pull/829) by [Julien Herzen](https://github.com/hrzn).
39+
- Fixed an issue with covariates slicing for `DualCovariatesForecastingModels`.
40+
[#858](https://github.com/unit8co/darts/pull/858) by [Dennis Bader](https://github.com/dennisbader).
41+
842

943
## [0.17.1](https://github.com/unit8co/darts/tree/0.17.1) (2022-02-17)
1044
Patch release
@@ -13,9 +47,13 @@ Patch release
1347
**Fixed**
1448
- Fixed issues with (now deprecated) `torch_device_str` parameter, and improved documentation
1549
related to using devices with PyTorch Lightning. [#806](https://github.com/unit8co/darts/pull/806)
50+
by [Dennis Bader](https://github.com/dennisbader).
1651
- Fixed an issue with `ReduceLROnPlateau`. [#806](https://github.com/unit8co/darts/pull/806)
52+
by [Dennis Bader](https://github.com/dennisbader).
1753
- Fixed an issue with the periodic basis functions of N-BEATS. [#804](https://github.com/unit8co/darts/pull/804)
18-
- Relaxed requirements for `pandas`; from `pandas>=1.1.0` to `pandas>=1.0.5`. [#800](https://github.com/unit8co/darts/pull/800)
54+
by [Vladimir Chernykh](https://github.com/vladimir-chernykh).
55+
- Relaxed requirements for `pandas`; from `pandas>=1.1.0` to `pandas>=1.0.5`.
56+
[#800](https://github.com/unit8co/darts/pull/800) by [@adelnick](https://github.com/adelnick).
1957

2058

2159
## [0.17.0](https://github.com/unit8co/darts/tree/0.17.0) (2022-02-15)
@@ -25,41 +63,54 @@ Patch release
2563
- 🚀 Support for [PyTorch Lightning](https://github.com/PyTorchLightning/pytorch-lightning): All deep learning
2664
models are now implemented using PyTorch Lightning. This means that many more features are now available
2765
via PyTorch Lightning trainers functionalities; such as tailored callbacks, or multi-GPU training.
28-
[#702](https://github.com/unit8co/darts/pull/702)
66+
[#702](https://github.com/unit8co/darts/pull/702) by [Dennis Bader](https://github.com/dennisbader).
2967
- The `RegressionModel`s now accept an `output_chunk_length` parameter; meaning that they can be trained to
3068
predict more than one time step in advance (and used auto-regressively to predict on longer horizons).
31-
[#761](https://github.com/unit8co/darts/pull/761)
69+
[#761](https://github.com/unit8co/darts/pull/761) by [Dustin Brunner](https://github.com/brunnedu).
3270
- 🔴 `TimeSeries` "simple statistics" methods (such as `mean()`, `max()`, `min()` etc, ...) have been refactored
3371
to work natively on stochastic `TimeSeries`, and over configurable axes. [#773](https://github.com/unit8co/darts/pull/773)
72+
by [Gian Wiher](https://github.com/gnwhr).
3473
- 🔴 `TimeSeries` now support only pandas `RangeIndex` as an integer index, and does not support `Int64Index` anymore,
3574
as it became deprecated with pandas 1.4.0. This also now brings the guarantee that `TimeSeries` do not have missing
3675
"dates" even when indexed with integers. [#777](https://github.com/unit8co/darts/pull/777)
76+
by [Julien Herzen](https://github.com/hrzn).
3777
- New model: `KalmanForecaster` is a new probabilistic model, working on multivariate series, accepting future covariates,
3878
and which works by running the state-space model of a given Kalman filter into the future. The `fit()` function uses the
3979
N4SID algorithm for system identification. [#743](https://github.com/unit8co/darts/pull/743)
80+
by [Julien Herzen](https://github.com/hrzn).
4081
- The `KalmanFilter` now also works on `TimeSeries` containing missing values. [#743](https://github.com/unit8co/darts/pull/743)
82+
by [Julien Herzen](https://github.com/hrzn).
4183
- The estimators (forecasting and filtering models) now also return their own instance when calling `fit()`,
4284
which allows chaining calls. [#741](https://github.com/unit8co/darts/pull/741)
85+
by [Julien Herzen](https://github.com/hrzn).
4386

4487

4588
**Fixed**
46-
- Fixed an issue with tensorboard and gridsearch when `model_name` is provided. [#759](https://github.com/unit8co/darts/issues/759)
89+
- Fixed an issue with tensorboard and gridsearch when `model_name` is provided.
90+
[#759](https://github.com/unit8co/darts/issues/759) by [@gdevos010](https://github.com/gdevos010).
4791
- Fixed issues with pip-tools. [#762](https://github.com/unit8co/darts/pull/762)
92+
by [Tomas Van Pottelbergh](https://github.com/tomasvanpottelbergh).
4893

4994
### For developers of the library:
5095
- Some linting checks have been added to the CI pipeline. [#749](https://github.com/unit8co/darts/pull/749)
96+
by [Tomas Van Pottelbergh](https://github.com/tomasvanpottelbergh).
5197

5298
## [0.16.1](https://github.com/unit8co/darts/tree/0.16.1) (2022-01-24)
5399
Patch release
54100

55101
### For users of the library:
56102
- Fixed an incompatibility with latest version of Pandas ([#752](https://github.com/unit8co/darts/pull/752))
57-
- Fixed non contiguous error when using lstm_layers > 1 on gpu ([#740](https://github.com/unit8co/darts/pull/740))
103+
by [Julien Herzen](https://github.com/hrzn).
104+
- Fixed non contiguous error when using lstm_layers > 1 on GPU. ([#740](https://github.com/unit8co/darts/pull/740))
105+
by [Dennis Bader](https://github.com/dennisbader).
58106
- Small improvement in type annotations in API documentation ([#744](https://github.com/unit8co/darts/pull/744))
107+
by [Dustin Brunner](https://github.com/brunnedu).
59108

60109
### For developers of the library:
61110
- Added flake8 tests to CI pipelines ([#749](https://github.com/unit8co/darts/pull/749),
62111
[#748](https://github.com/unit8co/darts/pull/748), [#745](https://github.com/unit8co/darts/pull/745))
112+
by [Tomas Van Pottelbergh](https://github.com/tomasvanpottelbergh)
113+
and [Dennis Bader](https://github.com/dennisbader).
63114

64115

65116
## [0.16.0](https://github.com/unit8co/darts/tree/0.16.0) (2022-01-13)

CONTRIBUTING.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,13 @@ and discuss it with some of the core team.
5252
8. Verify your tests coverage by running `./gradlew coverageTest`
5353
* Additionally you can generate an xml report and use VSCode Coverage gutter to identify untested
5454
lines with `./coverage.sh xml`
55-
9. If your contribution introduces a significant change, add it to `CHANGELOG.md` under the "Unreleased" section.
55+
9. If your contribution introduces a non-negligible change, add it to `CHANGELOG.md` under the "Unreleased" section.
56+
You can already refer to the pull request. In addition, for tracking contributions we are happy if you provide
57+
your full name (if you want to) and link to your Github handle. Example:
58+
```
59+
- Added new feature XYZ. [#001](https://https://github.com/unit8co/darts/pull/001)
60+
by [<Your Name>](https://github.com/<your-handle>).
61+
```
5662
10. Create a pull request from your new branch into the **master** branch.
5763

5864

INSTALL.md

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# Installation Guide
2+
3+
Some of the models depend on `prophet` and `torch`, which have non-Python dependencies.
4+
A Conda environment is thus recommended because it will handle all of those in one go.
5+
6+
## From conda-forge
7+
Currently only the x86_64 architecture with Python 3.7-3.9
8+
is fully supported with conda; consider using PyPI if you are running into troubles.
9+
10+
To create a conda environment for Python 3.7
11+
(after installing [conda](https://docs.conda.io/en/latest/miniconda.html)):
12+
13+
conda create --name <env-name> python=3.7
14+
15+
Don't forget to activate your virtual environment
16+
17+
conda activate <env-name>
18+
19+
As some models have relatively heavy dependencies, we provide two conda-forge packages:
20+
21+
* Install darts with all available models (recommended): `conda install -c conda-forge -c pytorch u8darts-all`.
22+
* Install core + neural networks (PyTorch): `conda install -c conda-forge -c pytorch u8darts-torch`
23+
* Install core only (without neural networks, Prophet or AutoARIMA): `conda install -c conda-forge u8darts`
24+
25+
For GPU support, please follow the instructions to install CUDA in the [PyTorch installation guide](https://pytorch.org/get-started/locally/).
26+
27+
28+
## From PyPI
29+
Install darts with all available models: `pip install darts`.
30+
31+
If this fails on your platform, please follow the official installation guides for
32+
[prophet](https://facebook.github.io/prophet/docs/installation.html#python)
33+
and [torch](https://pytorch.org/get-started/locally/), then try installing Darts again.
34+
35+
As some models have relatively heavy (or non-Python) dependencies,
36+
we also maintain the `u8darts` package, which provides the following alternate lighter install options:
37+
38+
* Install core only (without neural networks, Prophet or AutoARIMA): `pip install u8darts`
39+
* Install core + neural networks (PyTorch): `pip install "u8darts[torch]"`
40+
* Install core + Facebook Prophet: `pip install "u8darts[prophet]"`
41+
* Install core + AutoARIMA: `pip install "u8darts[pmdarima]"`
42+
43+
### Enabling Support for LightGBM
44+
45+
To enable support for LightGBM in Darts, please follow the
46+
[installation instructions](https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html) for your OS.
47+
48+
#### MacOS Issues with LightGBM
49+
At the time of writing, there is an issue with ``libomp`` 12.0.1 that results in
50+
[segmentation fault on Mac OS Big Sur](https://github.com/microsoft/LightGBM/issues/4229).
51+
Here's the procedure to downgrade the ``libomp`` library (from the
52+
[original Github issue](https://github.com/microsoft/LightGBM/issues/4229#issue-867528353)):
53+
* [Install brew](https://brew.sh/) if you don't already have it.
54+
* Install `wget` if you don't already have it : `brew install wget`.
55+
* Run the commands below:
56+
```
57+
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb
58+
brew unlink libomp
59+
brew install libomp.rb
60+
```
61+
62+
63+
## Running the examples only, without installing:
64+
65+
If the conda setup is causing too many problems, we also provide a Docker image with everything set up for you and ready-to-use Python notebooks with demo examples.
66+
To run the example notebooks without installing our libraries natively on your machine, you can use our Docker image:
67+
```bash
68+
./gradlew docker && ./gradlew dockerRun
69+
```
70+
71+
Then copy and paste the URL provided by the docker container into your browser to access Jupyter notebook.
72+
73+
For this setup to work you need to have a Docker service installed. You can get it at [Docker website](https://docs.docker.com/get-docker/).
74+
75+
76+
## Tests
77+
78+
The gradle setup works best when used in a python environment, but the only requirement is to have `pip` installed for Python 3+
79+
80+
To run all tests at once just run
81+
```bash
82+
./gradlew test_all
83+
```
84+
85+
alternatively you can run
86+
```bash
87+
./gradlew unitTest_all # to run only unittests
88+
./gradlew coverageTest # to run coverage
89+
./gradlew lint # to run linter
90+
```
91+
92+
To run the tests for specific flavours of the library, replace `_all` with `_core`, `_prophet`, `_pmdarima` or `_torch`.
93+
94+
## Documentation
95+
96+
To build documentation locally just run
97+
```bash
98+
./gradlew buildDocs
99+
```
100+
After that docs will be available in `./docs/build/html` directory. You can just open `./docs/build/html/index.html` using your favourite browser.

0 commit comments

Comments
 (0)