orange3
orange3 copied to clipboard
Renaming learners recomputes scores in test and score
Hi,
I just notice that Orange3 (the latest version at this time), recompute the Test and Score
widget after applying any type of changes, even for insignificant change (things like renaming a widget..), which is time consuming specially when dealing with a large dataset, another case when opening a project it starts recomputing the evaluation (Test and Score
, Predictions
...) automatically, I think it's better to ask the user if he/she want to do so in this case.
Possible solution: Categorize the event that trigger the re-execution and only do calculation when necessary.
Regards.
This need to be clarified a bit. I think the issue here is that Test and Score recomputes if you change the name of the learner on the input, which is true, and I agree, potentially undesired. It does not happen, though, when renaming the Test and Score widget it the canvas (as I have understood in the beginning).
The second issue is recalculation on opening the project. This can be avoided with the Open and Freeze option from the File menu.
@ajdapretnar , exactly, I think it's better if it was like a global option (e.g. a checkbox on the Canvas with Recompute automatically
or something). Thanks for the tip I didn't know that Open and Freeze
do that task, which is great, although I wish to see that option available when opening a project from any where (e.g. Recent file, double click on project file...).
We can't do much here.
There are two types of tools like workflow-base tools. In some you set up the whole workflow and the tell them to execute it. Others, like Orange, are "interactive" in the sense that computation is triggered by any changes in the workflow. But even in Orange you have the "Pause" button, with which you temporarily freeze the computation. This allows for similar effect as "Execute" button: to execute, you can unfreeze and then freeze again.
In the original issue you mentioned insignificant changes triggering larger recomputation. The particular case that you mention is annoying, but to fix it, Test and Score would need to check whether all parameters of the learner, except the name, remained the same. This functionality would need to be coded into learners, which is difficult, given that some are from scikit, and we can also have learners from add-on. Alternatively, there could be some kind of general mechanism with which widgets would indicate the kinds of changes they made. Any of these solutions would require a lot of work, but the effect would be rather minimal, at least in the case you show.
So, the only option will remain to freeze execution while making changes.