Can different learning runs of the same SUL end with different number of queries and steps even though I set a seed for reproducibility? #99
-
|
In my learning setup I fix a seed to ensure reproducible results, but they end with different values of Membership Queries, MQ Saved by Caching and Steps. For example: Experiment 1 oscillates between: and: Experiment 2: and others. |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 13 replies
-
|
It could happen due to hashing in Python. Did you set PYTHONHASHSEED (https://docs.python.org/3.4/using/cmdline.html#envvar-PYTHONHASHSEED)? |
Beta Was this translation helpful? Give feedback.
-
|
@mtappler Interesting take: I did not know about that. Unfortunately, it does not fix the issue. |
Beta Was this translation helpful? Give feedback.
-
|
It could be relevant to point out that the inputs to my SUL are custom objects that do not override |
Beta Was this translation helpful? Give feedback.
-
|
I noticed that this happens with L# but not L* (run_Lsharp, run_Lstar). |
Beta Was this translation helpful? Give feedback.
-
|
I think I have fixed. @mtappler @andreastedile The issue might have been that oracles that use compute_characterization_set might break reproducibility due to that function doing some set-to-list conversion, which introduces randomness. Let me know if the issue is resolved or if it persists. You can update AALpy by deleting it and running: |
Beta Was this translation helpful? Give feedback.
-
|
Minimal reproducible example: I have stripped the code down and obtained this: values are always the same: great! values change over time... Perhaps this has something to do with the interaction with PyKCS11, but will require more investigation. |
Beta Was this translation helpful? Give feedback.
I think I have fixed. @mtappler @andreastedile
The issue might have been that oracles that use compute_characterization_set might break reproducibility due to that function doing some set-to-list conversion, which introduces randomness.
Let me know if the issue is resolved or if it persists.
You can update AALpy by deleting it and running: