# What, exactly, do mlp(64,64) and mlp(64,128,1024) mean in PointNet, and how many input neurons does 1 (x,y,z) point have?

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.

2. There's also this Matlab example...

https://www.mathworks.com/help/vision/ug/point-cloud-classification-using-pointnet-deep-learning.html

...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];

3. ...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 of 1x3, meaning 1 input neuron, or 3 input neurons?

• Hello. This post was created more than 1 week ago, but it may be a good idea to split this post into 2, one for each of your 2 main questions/issues, so that people can focus on one problem at a time, but, in this case, this may not be strictly necessary, as the questions are very related, i.e. about the notation used in the context of PointNets. It's your choice.
– nbro
Sep 18 at 14:09