Compiler graph: Enable model selection, fixing warning in QUBO tutorial #418
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue Number: 417 (& 56 in lava-optimization)
Objective of pull request:
As the compiler graph scans through all modules in the path, it checks if either of the encountered class is a ProcModel.
If a file imports a module, like in solver.py of lava-optimization,
from lava.lib.optimization.solvers.generic.sub_process_models import StochasticIntegrateAndFireModel
the crawler will try to import that module as well. This leads to a warning, as the compiler graph incorrectly assumes that the found StochasticIntegrateAndFireModel is in solver.py.
The correct behavior should be that the crawler goes through all modules, and only selects Models implemented in the specific module, not those that are only imported.
The important change is in compiler_graphs.py.
Unfortunately, this change broke four unit tests, three in test_monitors, one in test_tutorial. This was due to the fact that the new crawler chooses the bitacc LifProcModel by default. Accordingly, I now specifically select the floating_pt model where tests would break otherwise.
Pull request checklist
Your PR fulfills the following requirements:
flakeheaven lint src/lava tests/
) and (bandit -r src/lava/.
) pass locallypytest
) passes locallyPull request type
Please check your PR type: