diff --git a/docs/installation.md b/docs/installation.md index 9ed2fb4db..fbb5427ee 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -19,7 +19,7 @@ $ pip install rlberry To install rlberry with more options, you can use ``pip install rlberry[xxxxxxxx]``, with `xxxxxxxx` as : - `torch` to install `opencv-python, ale-py, stable-baselines3, tensorboard, torch` -- `extras` to install `optuna, numba, ffmpeg-python, pyvirtualdisplay, scikit-fda, scikit-learn` +- `extras` to install `optuna, ffmpeg-python, scikit-fda` (for dev) diff --git a/pyproject.toml b/pyproject.toml index 7ec4499ee..3316dba0a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,16 +33,13 @@ moviepy = "*" pyopengl = "*" optuna ={version="*", optional=true} ffmpeg-python = {version="*", optional=true} -pyvirtualdisplay = {version="*", optional=true} opencv-python = {version="*", optional=true} ale-py = {version="*", optional=true} stable-baselines3 = {version="*", optional=true} tensorboard = {version="*", optional=true} torch = {version=">=2.0.0, !=2.0.1, !=2.1.0", optional=true} pandas = "*" -numba = "^0.58.1" scikit-fda = {version="^0.9", optional=true} -scikit-learn = {version="1.2.2", optional=true} sphinx = {version="6.2.1", optional=true} sphinx-gallery = { version= "^0.14.0", optional=true} sphinx-math-dollar = {version="^1.2.1", optional=true} @@ -60,7 +57,7 @@ multimethod = {version="1.10", optional=true} # new version 1.11 : crash our [tool.poetry.extras] torch = ["opencv-python", "ale-py", "stable-baselines3", "tensorboard", "torch"] -extras = ["optuna", "numba", "ffmpeg-python", "pyvirtualdisplay", "scikit-fda", "scikit-learn"] +extras = ["optuna", "ffmpeg-python", "scikit-fda"] doc = ["sphinx", "sphinx-gallery", "sphinx-math-dollar", "numpydoc", "myst-parser", "sphinxcontrib-video", "matplotlib"] [tool.poetry.group.dev] diff --git a/rlberry/check_packages.py b/rlberry/check_packages.py index cd21a4b87..22f9090f9 100644 --- a/rlberry/check_packages.py +++ b/rlberry/check_packages.py @@ -11,9 +11,3 @@ import torch.utils.tensorboard except ModuleNotFoundError: # pragma: no cover TENSORBOARD_INSTALLED = False # pragma: no cover - -NUMBA_INSTALLED = True -try: - import numba -except ModuleNotFoundError: # pragma: no cover - NUMBA_INSTALLED = False # pragma: no cover diff --git a/rlberry/rendering/tests/test_rendering_interface.py b/rlberry/rendering/tests/test_rendering_interface.py index 474f2734e..0c1f24e32 100644 --- a/rlberry/rendering/tests/test_rendering_interface.py +++ b/rlberry/rendering/tests/test_rendering_interface.py @@ -2,7 +2,6 @@ import pytest import sys -from pyvirtualdisplay import Display from rlberry_research.envs.classic_control import MountainCar from rlberry_research.envs.classic_control import Acrobot from rlberry_research.envs.classic_control import Pendulum @@ -20,11 +19,6 @@ import tempfile -try: - display = Display(visible=0, size=(1400, 900)) - display.start() -except Exception: - pass classes = [ Acrobot, diff --git a/rlberry/utils/jit_setup.py b/rlberry/utils/jit_setup.py deleted file mode 100644 index c5f2f55a1..000000000 --- a/rlberry/utils/jit_setup.py +++ /dev/null @@ -1,16 +0,0 @@ -# -# Checks if numba is installed. -# -> If so, use numba.jit -# -> Otherwise, define numba_jit as a dummy decorator. -# -import rlberry.check_packages as check_packages - -if check_packages.NUMBA_INSTALLED: - from numba import jit - - numba_jit = jit(nopython=True) -else: - - def numba_jit(func, **options): - """This decorator does not modify the decorated function.""" - return func diff --git a/rlberry/utils/logging.py b/rlberry/utils/logging.py index af78bdf2e..4cde82972 100644 --- a/rlberry/utils/logging.py +++ b/rlberry/utils/logging.py @@ -110,5 +110,3 @@ def configure_logging( gym.logger.set_level( logging.getLevelName(level) + 10 ) # If info -> go to warning gym level. If debug, go to info. - numba_logger = logging.getLogger("numba") - numba_logger.setLevel(logging.WARNING) diff --git a/rlberry/utils/metrics.py b/rlberry/utils/metrics.py deleted file mode 100644 index 1f6d48456..000000000 --- a/rlberry/utils/metrics.py +++ /dev/null @@ -1,35 +0,0 @@ -import numpy as np -from rlberry.utils.jit_setup import numba_jit - - -@numba_jit -def metric_lp(x, y, p, scaling): - """ - Returns the p-norm: || (x-y)/scaling||_p - - Parameters - ---------- - x : numpy.ndarray - 1d array - y : numpy.ndarray - 1d array - p : int - norm parameter - scaling : numpy.ndarray - 1d array - """ - assert p >= 1 - assert x.ndim == 1 - assert y.ndim == 1 - assert scaling.ndim == 1 - - d = len(x) - diff = np.abs((x - y) / scaling) - # p = infinity - if p == np.inf: - return diff.max() - # p < infinity - tmp = 0 - for ii in range(d): - tmp += np.power(diff[ii], p) - return np.power(tmp, 1.0 / p) diff --git a/rlberry/utils/tests/test_metrics.py b/rlberry/utils/tests/test_metrics.py deleted file mode 100644 index 487dcbb61..000000000 --- a/rlberry/utils/tests/test_metrics.py +++ /dev/null @@ -1,17 +0,0 @@ -import pytest -import numpy as np -from rlberry.utils.metrics import metric_lp - - -@pytest.mark.parametrize("dim", [1, 2, 3, 4]) -def test_metrics(dim): - y = np.zeros(dim) - x = np.ones(dim) - scaling_1 = np.ones(dim) - scaling_2 = 0.5 * np.ones(dim) - - for p in range(1, 10): - assert np.abs(metric_lp(x, y, p, scaling_1) - np.power(dim, 1.0 / p)) < 1e-15 - assert ( - np.abs(metric_lp(x, y, p, scaling_2) - 2 * np.power(dim, 1.0 / p)) < 1e-15 - )