Answers.Body: <p>The following link satisfied my inquiries:</p>
  <p><a href="https://www.mdpi.com/1999-4907/12/2/131/htm" rel="nofollow noreferrer">https://www.mdpi.com/1999-4907/12/2/131/htm</a></p>
  <p><a href="https://i.sstatic.net/0brAS.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/0brAS.jpg" alt="Illustration of PointNet MLP Layers" /></a></p>
  <p>I hope this is useful for someone else!
  Justin</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-21T14:26:28.457Z
Answers.Text: useful diagram, had the same question myself. +1
Answers.UserDisplayName: jeb2
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-09-18T19:06:48.217Z
Answers.LastActivityDate: 2021-09-18T19:06:48.217Z
Answers.UserDisplayName: Justin
Body: <p>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 <code>mlp(64,64)</code> and <code>mlp(64,128,1024)</code> actually mean.</p>
  <p><em>(I also have a 2nd question about PointNet MLP architecture, which I ask towards the end.)</em></p>
  <p><strong>Here's what I found online, which I believe applies:</strong></p>
  <ol>
  <li><p><a href="https://towardsdatascience.com/deep-learning-on-point-clouds-implementing-pointnet-in-google-colab-1fd65cd3a263" rel="nofollow noreferrer">https://towardsdatascience.com/deep-learning-on-point-clouds-implementing-pointnet-in-google-colab-1fd65cd3a263</a></p>
  <p>There's a paragraph here that says</p>
  <blockquote>
  <p>In this case MLP with shared weights is just 1-dim convolution with a kernel of size 1.</p>
  </blockquote>
  <p>Here, a link is provided to explain more about the 1-dim convolution...</p>
  <p><a href="https://jdhao.github.io/2017/09/29/1by1-convolution-in-cnn/" rel="nofollow noreferrer">https://jdhao.github.io/2017/09/29/1by1-convolution-in-cnn/</a></p>
  <p>...and I follow this pretty well.</p>
  </li>
  <li><p>There's also this Matlab example...</p>
  <p><a href="https://www.mathworks.com/help/vision/ug/point-cloud-classification-using-pointnet-deep-learning.html" rel="nofollow noreferrer">https://www.mathworks.com/help/vision/ug/point-cloud-classification-using-pointnet-deep-learning.html</a></p>
  <p>...which tells me to</p>
  <blockquote>
  <p>set the classifier model input size to 64 and the hidden channel size to 512 and 256 and use the <code>initalizeClassifier</code> helper function...to initialize the model parameters.</p>
  </blockquote>
  <p><code>inputChannelSize = 64; hiddenChannelSize = [512,256];</code></p>
  </li>
  <li><p>Then there's this link: <a href="https://www.researchgate.net/figure/Network-architecture-The-numbers-in-parentheses-indicate-number-of-MLP-layers-and_fig2_327068615" rel="nofollow noreferrer">https://www.researchgate.net/figure/Network-architecture-The-numbers-in-parentheses-indicate-number-of-MLP-layers-and_fig2_327068615</a></p>
  <p>...in which they say,</p>
  <blockquote>
  <p>The numbers in parentheses indicate number of MLP
  layers</p>
  </blockquote>
  <p>but this is, in my opinion, not written very well. Do they mean,</p>
  <blockquote>
  <p>The notation <code>mlp(64,64,128,256)</code> means that the MLP has 4 layers, and each layer produces an output with 64, 64, 128, and 256 channels, respectively?</p>
  </blockquote>
  </li>
  </ol>
  <p><strong>Here are my 2 questions about PointNet MLP notation / architecture:</strong></p>
  <ul>
  <li><p>What do each of the numbers in something like <code>mlp(64,64,128,256)</code> 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?</p>
  </li>
  <li><p>Finally, if your input is <code>nx3</code> (as in, <code>n (x,y,z)</code> points), does this mean that the PointNet MLP takes an input of <code>1x3</code>, meaning 1 input neuron, or 3 input neurons?</p>
  </li>
  </ul>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-09-18T14:09:22.983Z
Comments.Text: 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.
Comments.UserDisplayName: nbro
Tags: <neural-networks><multilayer-perceptrons><notation>
Title: 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?
UserDisplayName: Justin
ThreadText: # 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?
  
  (Asked by: username_0 on 2021-09-06)
  
  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:**
  
  1. <https://towardsdatascience.com/deep-learning-on-point-clouds-implementing-pointnet-in-google-colab-1fd65cd3a263>
  
     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. 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 of `1x3`, meaning 1 input neuron, or 3 input neurons?
  
  **Tags:** neural-networks, multilayer-perceptrons, notation
  > **Comments:**
  > **username_1**: 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.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2021-09-18. Score: 4 | Accepted answer
  
  The following link satisfied my inquiries:
  
  <https://www.mdpi.com/1999-4907/12/2/131/htm>
  
  [![Illustration of PointNet MLP Layers](https://i.sstatic.net/0brAS.jpg)](https://i.sstatic.net/0brAS.jpg)
  
  I hope this is useful for someone else!
  Justin
  
  > **Comments:**
  > **username_2**: useful diagram, had the same question myself. +1  
  
  ---
  
  