NOTE: sktime-dl is currently being updated to work correctly with sktime 0.6, and wwill be fully relaunched over the summer. The plan is
sktime-dl is under development and currently in a state of flux.
The aim is to define Keras networks able to be directly used within sktime and its pipelining and strategy tools, and by extension scikit-learn, for use in applications and research. Over time, we wish to interface or implement a wide range of networks from the literature in the context of time series analysis.
Currently, we interface with a number of networks for time series classification in particular. A large part of the current toolset serves as an interface to dl-4-tsc, and implements the following network architectures:
We also interface with InceptionTime, as of writing the strongest deep learning approach to general time series classification.
Most of the classifier architectures have been adapted to also provide regressors. These are:
The regression networks can also be used to perform time series forecasting via sktime's reduction strategies.
We aim to incorporate bespoke forecasting networks in future updates, both specific architectures and general RNNs/LSTMs.
These act as wrappers to networks, and can be used in high-level and experimental pipelines as with any sktime model.
sktime-dl is an extension package to sktime, primarily introducing different learning algorithms. All examples and documentation on higher level funtionality and usage from the base sktime apply to this package.
Documentation specifically for sktime-dl shall be produced in due course.
Example notebooks for sktime-dl usage can be found under the examples folder.
Former and current active contributors are as follows:
The simplest installation method is to install in a new environment via pip:
# if using anaconda for environment management conda create -n sktime-dl python=3.6 conda activate sktime-dl # if using virtualenv for environment management virtualenv sktime-dl source bin/activate #unix sktime-dl\Scipts\activate #windows pip install sktime-dl
sktime-dl is under development. To ensure that you're using the most up to date code, you can instead install the development version in your environment:
git clone https://github.com/sktime/sktime-dl.git cd sktime-dl git checkout dev git pull origin dev pip install .
When installing sktime-dl from scratch, the latest stable version of Tensorflow 2.x will be installed. Tensorflow 1.x is also supported beyond 1.9, if you have an existing installation in your environment that you wish to maintain.
With the above instructions, the networks can be run out the box on your CPU. If you wish to run the networks on an NVIDIA GPU, you can:
Follow Tensorflow's instuctions to install Docker and nvidia-docker (Linux only).
Build the sktime-dl Docker image:
cd sktime-dl docker build -t sktime_dl .
Run a container with GPU support using the image:
docker run --gpus all --rm -it sktime_dl:latest
Run all the tests with:
pytest -v --cov=sktime_dl
or exclude the long-running tests with:
pytest -v -m="not slow" --cov=sktime_dl --pyargs sktime_dl
To run this Docker container on CPU, replace the above
docker run command with:
docker run --rm -it sktime_dl:latest