Get rid of an associated type for ConvolutionConfig for NN plugin.
This is a first step for completely eliminating associated types from IBackend trait such that it can be passed as &dyn reference to layer trait (which in turn means that it won't need to be generic).
🧠Architecture
Changes proposed by this PR:
Makes the ConvolutionConfig a trait object, which is then internally downcasted to native structs by implementations.
Notes to reviewer:
ui tests fail, but so they do in the current arch-refactor branch.
example-mnist-classification mnist conv works (achieves 95% accuracy).
📜 Checklist
[x] Test coverage is excellent
[x] All unit tests pass
[x] The juice-examples run just fine
[x] Documentation is thorough, extensive and explicit
What does this PR accomplish?
Get rid of an associated type for ConvolutionConfig for NN plugin.
This is a first step for completely eliminating associated types from
IBackend
trait such that it can be passed as&dyn
reference to layer trait (which in turn means that it won't need to be generic).Changes proposed by this PR:
Makes the ConvolutionConfig a trait object, which is then internally downcasted to native structs by implementations.
Notes to reviewer:
ui
tests fail, but so they do in the currentarch-refactor
branch.example-mnist-classification mnist conv
works (achieves 95% accuracy).📜 Checklist
juice-examples
run just fine