Coder Social home page Coder Social logo

Comments (5)

chrischoy avatar chrischoy commented on May 23, 2024

So let's go over the generalized sparse convolution quickly https://stanfordvl.github.io/MinkowskiEngine/generalized_sparse_conv.html#id2

For all latex code define inside $$, use http://mathb.in/ to render them online.

The input coordinates and output coordinates can be defined arbitrarily as $\mathcal{C}^\text{in}$ and $\mathcal{C}^\text{out}$. There's no consistent definition in here that a sparse convolution has to give out the same result as the regular convolution. From my experience, if you expand the coordinate space so that the sparse convolution gives the same result as the standard discrete dense convolution (regular conv2d or conv3d), the computation increases rapidly while it gives no performance increase. So I would not go that route unless you have a specific reason for that.

  1. By default, it uses the same input coordinates for output $\mathcal{C}^\text{out} = \mathcal{C}^\text{in}$.

  2. As I mentioned, I would not go that route. If you need, I would simply use .dense() function to convert the sparse tensor to a dense one and do convolution after you decrease the resolution of the space significantly. However, if you absolutely need that, I can make a cleaner API function.

from minkowskiengine.

johnny8376 avatar johnny8376 commented on May 23, 2024

Thanks for your quick reply.
I was using the terminology of sparse conv and submanifold conv in Submanifold Sparse Convolutional Networks. I just want to make sure I can use your library to reproduce other network.
I appreciate your generalized framework. The current API looks quit flexible to me. There's no need to include such expensive operator here.

from minkowskiengine.

lshiwjx avatar lshiwjx commented on May 23, 2024

@chrischoy Hi, Thanks for your code.
I feel that the MinkowskiConvolutionTranspose(generate_new_coords=True) is equivalent to the Dense Convolution regardless of the negative coordinates of the output. Am I correct?

from minkowskiengine.

chrischoy avatar chrischoy commented on May 23, 2024

No it is not equivalent. The input and output are both sparse tensors. How could it be equivalent?

from minkowskiengine.

lshiwjx avatar lshiwjx commented on May 23, 2024

@chrischoy Thanks for your reply.

I mean that in your implement, the input coordinates and output coordinates are the same. But for regular convolution, the out_coords_key includes in_coords_key's neighborhood.

As you have mentioned, in your experiments, expanding the output coordinate space will harm the performance, but I want to try this in my tasks where the input is very sparse.

I found that it seems the MinkowskiConvolutionTranspose(generate_new_coords=True) can achieve this function, i.e., the regular convolution, because the output coordinates of the transpose convolution are expanded. Am I correct?

from minkowskiengine.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.