Skip to content

[BUG] Arsenal predict not working properly?! #1696

Open
@tim-bsm

Description

@tim-bsm

Describe the issue

I was using sktime for Arsenal but because of the split - the reasons stated by Tony in this issue - and because of wanting to test, whether aeon is faster than sktime, I wanted to try aeon. As aeon is a fork of sktime, the basics are the same so it was kind of easy to switch to aeon. Well, that's what I thought. Turns out that the predict of the Arsenal algorithm now uses another type. I'm still trying to use the predict and can't get it to work.

For Arsenal, I'm fitting it in a different file and save its outcome with the joblib.dump function. The generated file is then being loaded back in the main script in which I'm trying to predict the class of my measurement. This always gives me the following error:

TypeError: No matching definition for argument type(s) array(float64, 1d, C), array(float64, 1d, C), Tuple(array(int32, 1d, C), array(int32, 1d, C), array(float32, 1d, C)), Tuple(array(int32, 1d, C), array(int32, 1d, C), array(float32, 1d, C)), int64

I'm trying to predict it like that:

acf = joblib.load(arsenal.joblib)
data = np.array(['0.0', '0.0', '0.0', ..., '0.0'], dtype=np.float64)
acf.predict(data)

The list contains 200 strings all being 0.0

After that I went to the examples directory in the aeon git-repo and tried to use the example written there. While reading this example I noticed that the line in "In [2]:" should be motions_test, motions_test_labels = load_basic_motions(split="test") instead of motions_test, motions_test_labels = load_basic_motions(split="train"), if I'm not completely misunderstanding the example. But this just as a side node.
So I tried to use the example with which I didn't get the above mentioned error anymore but instead a new one:

Terminating: fork() called from a process already using Gnu OpenMP, this is unsafe.

I assume that this is a direct cause of me using Pythons multiprocessing module to run the prediction parallel with another module?!

Is this a bug or am I doing something completely wrong? As I said, the example works great in sktime.

Suggest a potential alternative/fix

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingclassificationClassification packagemultithreadingMultithreading issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions