Comments (2)
Not the author, but it seems like it might be easier/more efficient if np.einsum
here and np.rot90
in the different ._basespace_action
s are replaced with their torch
equivalents. This way, there should be no need to move the tensor between the GPU and CPU(?)
from e2cnn.
hey there! Sorry for the late reply.
I agree that both .transform()
methods should raise an exception in that case.
Currently, the backend of the library dealing with groups, representations and generation of the kernels only relies on numpy.
The e2cnn.nn
subpackage, then, tries to provide an interface similar to PyTorch and wraps the np.ndarray in the other subpackages inside torch.Tensor. The rationale was that I wanted the backend of the library to be independent of PyTorch (such that one could also extract the filter bases for other applications).
I am now a bit more convinced that the backend should also support PyTorch, or at least the e2cnn.gspace
should.
For the moment, I'd still recommend not directly using tensor.transform(el)
when this implies some interpolation of the input. This is because one probably wants to have the freedom to customise more this operation (e.g. change the order of the interpolation).
Anyways, in a future release, I will try to fix the gspace
as @kristian-georgiev suggested, using torch operations.
Thanks!
Gabriele
from e2cnn.
Related Issues (20)
- Need equivariant ResNet & VGG like architectural networks implemented in E2CNN library HOT 6
- wrapping pytorch operations - grid_sample HOT 4
- Import Error with Torch 1.9.0+cu111 HOT 2
- equivariant Transformer HOT 5
- ZeroPad2D on GeometricTensor
- Cannot pass weights of R2Conv as a positional argument HOT 2
- Counting FLOPs for e2cnn HOT 1
- equivariance in C8 space HOT 1
- Module export HOT 3
- About the equivalence of wide_resnet HOT 5
- Need a size parameter for e2cnn.R2Upsampling Class HOT 1
- about attribute R2conv.filter HOT 2
- Learning of kernels HOT 2
- O(2) group, irreps, and PyTorch DDP. HOT 2
- checking equivariance for the angles that are not 90n HOT 2
- about to set special rotation equivariant HOT 2
- Cannot import name container_abcs in python 3.6 version (e2cnn_py36)
- shriking size of output image
- Use of np.float and np.int etc
- Difference between trivial output type and regular output type with group pooling HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from e2cnn.