-
Notifications
You must be signed in to change notification settings - Fork 1k
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
differentiable transforms #189
Comments
This relates to #95 as differentiable spatial transformations are required for most learning based registration approaches. |
At first look, kornia seems focused/restricted to 2D images. |
this feature is almost there, numeric logic is in place, now we need to make decision whether we want to make these trainable layers a part of network layer module or transform module |
Fair point but it works on RGB, should work similarly on 3D as well. However, it does not support more complex transforms |
The |
For the record, it's also good to have a look at how PhoenixDL/rising did it with a common split into functionals and transforms: Note that quite a few 3D spatial transforms are already available there. |
yes, @mibaumgartner from PhoenixDL/rising is also part of our working group |
@justusschock So there might be some changes that need to be done to the transforms (this is a general consideration when subclassing Also: operating on RGB is not equivalent to volumetric data which would be 4D with channels. |
closed |
the transforms are not differentiable, are they?
Edit: I was primarily looking at transforms.AffineGrid which generates the affine transformation from numpy arrays and does not allow the autograd mechanism of PyTorch to track the gradient.
Much of what you want to implement is already available here https://github.com/kornia/kornia, including the dice loss, and a good amount of the transforms, but differentiable as well.
Its not even the alpha release yet but reading the docs I had trouble to understand which type of parameter is being passed. Often there is just an explanation what it stands for rather than what data type it actually is. Makes it hard to use the functions
The text was updated successfully, but these errors were encountered: