Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eventual move to the linfa crate? #2

Open
quietlychris opened this issue Jul 14, 2020 · 1 comment
Open

Eventual move to the linfa crate? #2

quietlychris opened this issue Jul 14, 2020 · 1 comment

Comments

@quietlychris
Copy link
Contributor

quietlychris commented Jul 14, 2020

I realize things are bit early-stage, but I was recently reviewing the linfa crate which recently got ownership transferred to the Rust-ML org, and I began thinking that convolution can definitely be useful in areas other than CNNs. As such, I was considering whether it might make sense to eventually move some of this work over into that crate (perhaps as a smaller module, e.g. linfa::convolution::edge_detection or even if it's just re-exported from a separate dependency). I think that crate's goal is to put together a collection of generally useful machine learning methods, so this might fit in well and perhaps make it's way to people that might not otherwise see it.

Obviously no pressure, and there's still some work between here and there anyway, but figured I'd toss the idea out there.

@niniack
Copy link
Owner

niniack commented Jul 14, 2020

Just took a look at linfa! I have absolutely no issues with moving the work/continuing future work into linfa. I'm happy to help build convolution tooling in the most effective way.

In moving to linfa, I'd like to suggest we build up from an even lower level, if possible. In some contexts it would be quicker to carry out convolution in the frequency domain (although its definitely not a one size fits all, as it tends to work well with larger convolutions). We could offer convolution in both flavors (fft method or traditional matrix multiplications as I believe you have already implemented) for more variety.

I'd like to get work done in generalizing the fft for n domains as a first step. There is currently a crate called ofuton that does this, but its no longer maintained. This is pretty much what I'd like to have a base before solving the convolution problem. Do you think this is something appropriate for the linfa crate? Would it accidentally be against the spirit of the crate?

Otherwise, I think there's benefit in centralizing our efforts!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants