-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Should we separate basis objects' eval and conv mode? #202
Comments
the power of the current approach is that you can combine and call the same method "compute_features", which will create any combination of convolution or evaluation for you once the parameters are set at initialization. To achieve the behavior, we need to set configurations that are not passed before the actual transformation takes place. I don't like the idea that a basis is initialized in a default mode and then one needs to call an extra method to finish off the initialization to switch mode and pass hyperparameters. Having separate classes may be an option, but we have already a number of basis (possibly expanding), i think it would be a lot of api to remember. The solution we have now is not super elegant, but keeps the api to a minimum, open to suggestion on how to deal with this init more elegantly! |
Revisiting my opinion: |
After the PR #247, basis will naturally have an equivalent of "fit" (setting the input shapes, and the conv kernels) and. a I would make this more explicit when I'll split the PR, and this will make the map to TransformerBasis even cleaner |
With the changes in #191 , the eval and conv modes of the basis object are becoming more and more separate, such that there a handful of initialization arguments that are ignored depending on which one you choose. This feels weird to me -- should we have them be separate objects somehow? Or initialize with shared arguments and then call a
eval()
orconv()
method to set the mode, passing the relevant arguments then?The text was updated successfully, but these errors were encountered: