jambo6 / online-neural-cdes

Code for: "Neural Controlled Differential Equations for Online Prediction Tasks"
34 stars 6 forks source link

Cannot install #2

Open twkillian opened 2 years ago

twkillian commented 2 years ago

I've been trying to follow the README instructions for installing this package both locally and on the remote machine that I will use for experiments using this online NCDE. However, I cannot install the libraries that you've written (sacredex and autots) as currently expected (using requirements.txt through setup.py via the pip install -e . command.

The errors I'm seeing seem to correspond to a change in GitHub's privacy and security settings. The errors I'm seeing are as follows:

Collecting autots@ git+git://github.com/jambo6/autots@v0.0.8
  Cloning git://github.com/jambo6/autots (to revision v0.0.8) to /tmp/pip-install-do6rkh9r/autots_7cbd821d414844ec9e293c2bba5a389b
  Running command git clone -q git://github.com/jambo6/autots /tmp/pip-install-do6rkh9r/autots_7cbd821d414844ec9e293c2bba5a389b
  fatal: remote error:
    The unauthenticated git protocol on port 9418 is no longer supported.
  Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
WARNING: Discarding git+git://github.com/jambo6/autots@v0.0.8. Command errored out with exit status 128: git clone -q git://github.com/jambo6/autots /tmp/pip-install-do6rkh9r/autots_7cbd821d414844ec9e293c2bba5a389b Check the logs for full command output.
Collecting sacredex@ git+git://github.com/jambo6/sacredex@v0.0.5
  Cloning git://github.com/jambo6/sacredex (to revision v0.0.5) to /tmp/pip-install-do6rkh9r/sacredex_9ff0834e97d7463d832fa49dcf71048f
  Running command git clone -q git://github.com/jambo6/sacredex /tmp/pip-install-do6rkh9r/sacredex_9ff0834e97d7463d832fa49dcf71048f
  fatal: remote error:
    The unauthenticated git protocol on port 9418 is no longer supported.
  Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
WARNING: Discarding git+git://github.com/jambo6/sacredex@v0.0.5. Command errored out with exit status 128: git clone -q git://github.com/jambo6/sacredex /tmp/pip-install-do6rkh9r/sacredex_9ff0834e97d7463d832fa49dcf71048f Check the logs for full command output.
Collecting dnspython==2.1.0
  Using cached dnspython-2.1.0-py3-none-any.whl (241 kB)
Collecting pytest==6.2.2
  Using cached pytest-6.2.2-py3-none-any.whl (280 kB)
Collecting pre-commit==2.10.1
  Using cached pre_commit-2.10.1-py2.py3-none-any.whl (185 kB)
Collecting pandas==1.2.2
  Using cached pandas-1.2.2-cp39-cp39-manylinux1_x86_64.whl (9.7 MB)
Collecting scikit-learn==0.24.1
  Using cached scikit_learn-0.24.1-cp39-cp39-manylinux2010_x86_64.whl (23.8 MB)
Collecting tqdm==4.57.0
  Using cached tqdm-4.57.0-py2.py3-none-any.whl (72 kB)
ERROR: Could not find a version that satisfies the requirement autots (unavailable) (from online-neural-cdes) (from versions: 0.0.2, 0.0.3, 0.1.0, 0.1.1, 0.1.2, 0.1.5, 0.2.0a1, 0.2.0a3, 0.2.0a4, 0.2.0, 0.2.1, 0.2.2a1, 0.2.2, 0.2.3a1, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.3.13a9, 0.4.0)
ERROR: No matching distribution found for autots (unavailable)

Would it perhaps be possible to place these dependencies in the modules folder like has been done with torchcde and torchdiffeq?

Any other advice?

jambo6 commented 2 years ago

Hi,

This is my bad, they are custom modules and I've moved them. I will get that sorted.

I wouldn't recommend this for repo for online NCDEs though, there is an official library called torchcde - all the useful stuff from this study has been ported there (e.g. rectilinear interpolation).

For online NCDEs, just build coefficients using torchcde.linear_interpolation_coeffs(x, t=None, rectilinear=0) (assuming time is the 0th index). There is lots of further documentation on the repo page.

twkillian commented 2 years ago

Okay, great! Thanks for the pointers. I'll switch my focus there.

patrick-kidger commented 2 years ago

+1 for using the much-tidier torchcde library over this repo.

If you prefer JAX then there's also the Diffrax library, which besides its numerical integration routines, also implements these newer (better) forms of interpolation. It's also a lot faster than the PyTorch libraries.

twkillian commented 2 years ago

Thanks for the encouragement @patrick-kidger! I would love to make the jump to JAX but my current overall modeling workflow is constrained to PyTorch for now. Once I get the time (whenever that might be...) I'd love to transition fully to JAX and then take advantage of your efforts speeding things up.

For now, I'll transition over to torchcde and take the computational slowdowns since I'm just training the CDE model to encode timeseries data for offline use (needs the online CDE to account for the temporal structure).