I couldn't find out how to interpret the multilayer perceptron notation given in PointNet. Specifically, I am looking to find out what the numbers inside the parentheses of mlp(64,64)
and mlp(64,128,1024)
actually mean.
(I also have a 2nd question about PointNet MLP architecture, which I ask towards the end.)
Here's what I found online, which I believe applies:
-
There's a paragraph here that says
In this case MLP with shared weights is just 1-dim convolution with a kernel of size 1.
Here, a link is provided to explain more about the 1-dim convolution...
https://jdhao.github.io/2017/09/29/1by1-convolution-in-cnn/
...and I follow this pretty well.
There's also this Matlab example...
...which tells me to
set the classifier model input size to 64 and the hidden channel size to 512 and 256 and use the
initalizeClassifier
helper function...to initialize the model parameters.inputChannelSize = 64; hiddenChannelSize = [512,256];
Then there's this link: https://www.researchgate.net/figure/Network-architecture-The-numbers-in-parentheses-indicate-number-of-MLP-layers-and_fig2_327068615
...in which they say,
The numbers in parentheses indicate number of MLP layers
but this is, in my opinion, not written very well. Do they mean,
The notation
mlp(64,64,128,256)
means that the MLP has 4 layers, and each layer produces an output with 64, 64, 128, and 256 channels, respectively?
Here are my 2 questions about PointNet MLP notation / architecture:
What do each of the numbers in something like
mlp(64,64,128,256)
actually mean, and what do their positions mean? Are these numbers ONLY referring to the hidden layers, which includes the output layer? Also, are they referring to the number of channels, akin to the depth-wise feature layers of a CNN?Finally, if your input is
nx3
(as in,n (x,y,z)
points), does this mean that the PointNet MLP takes an input of1x3
, meaning 1 input neuron, or 3 input neurons?