Open
Description
Describe the bug
Hi,
when doing
from aeon.classification.convolution_based import Arsenal
it takes forever.
- It was working a few days back. In fact in the old venv it still works. (Edit: might be that the 1st loading always takes long. [Not quite sure how long it should take...])
- But when trying a new venv (see below -> reproduce) it takes forever. Why?
my system
Ubuntu 24.04.1 LTS
(according tocat /etc/os-release
)Python 3.12.3
(according topython --version
after starting the venv (see below))
reproduce (or does it work on your side?)
# in the shell (I'm using bash on linux)
python3 -m venv pyvenv
. pyvenv/bin/activate
pip install --upgrade pip
pip install -U aeon
python -c "print('loading'); from aeon.classification.convolution_based import Arsenal; print('done')" # takes forever
Any ideas?
details
stopping the freeze by hitting Ctrl-C, results in
KeyboardInterrupt:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/classification/convolution_based/__init__.py", line 10, in <module>
from aeon.classification.convolution_based._arsenal import Arsenal
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/classification/convolution_based/_arsenal.py", line 20, in <module>
from aeon.transformations.collection.convolution_based import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/__init__.py", line 33, in <module>
from aeon.transformations.collection.channel_selection import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/channel_selection/__init__.py", line 16, in <module>
from aeon.transformations.collection.channel_selection._channel_scorer import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/channel_selection/_channel_scorer.py", line 7, in <module>
from aeon.classification.convolution_based._rocket_classifier import RocketClassifier
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/classification/convolution_based/_rocket_classifier.py", line 16, in <module>
from aeon.transformations.collection.convolution_based import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/convolution_based/__init__.py", line 14, in <module>
from ._multirocket import MultiRocket
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/convolution_based/_multirocket.py", line 556, in <module>
@njit(
^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/decorators.py", line 232, in wrapper
disp.compile(sig)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/dispatcher.py", line 912, in compile
self._cache.save_overload(sig, cres)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/caching.py", line 652, in save_overload
self._save_overload(sig, data)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/caching.py", line 661, in _save_overload
data = self._impl.reduce(data)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/caching.py", line 389, in reduce
return cres._reduce()
^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler.py", line 199, in _reduce
libdata = self.library.serialize_using_object_code()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/codegen.py", line 921, in serialize_using_object_code
data = (self._get_compiled_object(),
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/codegen.py", line 629, in _get_compiled_object
raise RuntimeError("no compiled object yet for %s" % (self,))
RuntimeError: no compiled object yet for <Library '_transform_multi' at 0x77c57e6ddd00>
or
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/classification/convolution_based/__init__.py", line 10, in <module>
from aeon.classification.convolution_based._arsenal import Arsenal
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/classification/convolution_based/_arsenal.py", line 20, in <module>
from aeon.transformations.collection.convolution_based import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/__init__.py", line 33, in <module>
from aeon.transformations.collection.channel_selection import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/channel_selection/__init__.py", line 16, in <module>
from aeon.transformations.collection.channel_selection._channel_scorer import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/channel_selection/_channel_scorer.py", line 7, in <module>
from aeon.classification.convolution_based._rocket_classifier import RocketClassifier
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/classification/convolution_based/_rocket_classifier.py", line 16, in <module>
from aeon.transformations.collection.convolution_based import (
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/convolution_based/__init__.py", line 14, in <module>
from ._multirocket import MultiRocket
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/aeon/transformations/collection/convolution_based/_multirocket.py", line 556, in <module>
@njit(
^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/decorators.py", line 232, in wrapper
disp.compile(sig)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/dispatcher.py", line 905, in compile
cres = self._compiler.compile(args, return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/dispatcher.py", line 80, in compile
status, retval = self._compile_cached(args, return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/dispatcher.py", line 94, in _compile_cached
retval = self._compile_core(args, return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/dispatcher.py", line 107, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler.py", line 744, in compile_extra
return pipeline.compile_extra(func)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler.py", line 438, in compile_extra
return self._compile_bytecode()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler.py", line 506, in _compile_bytecode
return self._compile_core()
^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler.py", line 472, in _compile_core
pm.run(self.state)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler_machinery.py", line 356, in run
self._runPass(idx, pass_inst, state)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler_machinery.py", line 311, in _runPass
mutated |= check(pss.run_pass, internal_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/compiler_machinery.py", line 273, in check
mangled = func(compiler_state)
^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/typed_passes.py", line 468, in run_pass
lower.lower()
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/lowering.py", line 187, in lower
self.lower_normal_function(self.fndesc)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/lowering.py", line 226, in lower_normal_function
entry_block_tail = self.lower_function_body()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/lowering.py", line 256, in lower_function_body
self.lower_block(block)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/lowering.py", line 270, in lower_block
self.lower_inst(inst)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/parfors/parfor_lowering.py", line 51, in lower_inst
_lower_parfor_parallel(self, inst)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/parfors/parfor_lowering.py", line 67, in _lower_parfor_parallel
return _lower_parfor_parallel_std(lowerer, parfor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/parfors/parfor_lowering.py", line 381, in _lower_parfor_parallel_std
call_parallel_gufunc(
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/parfors/parfor_lowering.py", line 1672, in call_parallel_gufunc
info = build_gufunc_wrapper(llvm_func, cres, sin, sout,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/np/ufunc/parallel.py", line 271, in build_gufunc_wrapper
info = build_gufunc_kernel(
^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/np/ufunc/parallel.py", line 152, in build_gufunc_kernel
wrapperlib.add_linking_library(info.library)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/codegen.py", line 720, in add_linking_library
library._ensure_finalized()
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/codegen.py", line 567, in _ensure_finalized
self.finalize()
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/codegen.py", line 762, in finalize
self._optimize_final_module()
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/numba/core/codegen.py", line 682, in _optimize_final_module
self._codegen._mpm_full.run(self._final_module)
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/llvmlite/binding/passmanagers.py", line 698, in run
return ffi.lib.LLVMPY_RunPassManager(self, module)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dude/proj/test_aeon/pyvenv/lib/python3.12/site-packages/llvmlite/binding/ffi.py", line 192, in __call__
return self._cfn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt
Steps/Code to reproduce the bug
# in the shell (I'm using bash on linux)
python3 -m venv pyvenv
. pyvenv/bin/activate
pip install --upgrade pip
pip install -U aeon
python -c "print('loading'); from aeon.classification.convolution_based import Arsenal; print('done')" # takes forever
Expected results
should finish import quickly
Actual results
takes forever
Versions
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'show_versions' from 'aeon.utils' (/home/dude/aeon_test/pyvenv/lib/python3.12/site-packages/aeon/utils/__init__.py)
Any ideas? thanks.