Closed maniospas closed 3 years ago
Issue arose from creating a new personalization object in the GraphFilter.rank(...)
method that had a different hash value than the original and hence could not be queries. This was fixed with a GraphFilter_prepare(personalization)
method at the very beginning of ranking, which gives the opportunity to the ClosedFormGraphFilter
to search for the dictionary entry with the true hash value.
Optimization improvements are tested only on the numpy backend, because in other backends running times are dominated by switching back-and-forth with numpy during supervised measure evaluation.
When fixing this issue, it was noted that GraphSignal.filter
often dominates running time due to employing list comprehension instead of native backend operations. Respective operations were added to all backends.
Minimum fixed version: 0.2.5 Related tests: tests.test_filters.test_optimization_dict
The optimization_dict argument to the ClosedFormGraphFilter class does not seem to produce as an improvement in runnng time. This could indicate either a bug or bottlenecks in other parts of the pipeline, e.g. in graph signal instantiation.
Version: run with version 2.3 adjusted to run experiments 50 times when measuring time
Demonstration:
Related tests: None