Class MeshCNNOptions
Configuration options for the MeshCNN neural network.
public class MeshCNNOptions
- Inheritance
-
MeshCNNOptions
- Inherited Members
Remarks
MeshCNN is a deep learning architecture for processing 3D mesh data. It operates directly on the mesh structure using edge convolutions and mesh pooling operations.
For Beginners: These options control how the MeshCNN network is configured. The defaults are set to match the original paper and work well for most 3D shape classification and segmentation tasks.
Properties
ConvChannels
Gets or sets the channel sizes for each edge convolution block.
public int[] ConvChannels { get; set; }
Property Value
- int[]
Remarks
Each value represents the number of output channels for one edge conv layer. The default [64, 128, 256, 256] matches the original MeshCNN paper.
DropoutRate
Gets or sets the dropout rate for regularization.
public double DropoutRate { get; set; }
Property Value
Remarks
Dropout is applied to fully connected layers to prevent overfitting. A value of 0 disables dropout.
FullyConnectedSizes
Gets or sets the sizes of fully connected layers before output.
public int[] FullyConnectedSizes { get; set; }
Property Value
- int[]
Remarks
After edge convolutions and pooling, the features are aggregated and passed through fully connected layers for classification.
InputFeatures
Gets or sets the number of input features per edge.
public int InputFeatures { get; set; }
Property Value
Remarks
The default value of 5 corresponds to the standard MeshCNN edge features: - Dihedral angle - Two symmetric edge-length ratios - Two symmetric face angles
LearningRate
Gets or sets the initial learning rate for training.
public double LearningRate { get; set; }
Property Value
NumClasses
Gets or sets the number of output classes for classification.
public int NumClasses { get; set; }
Property Value
Remarks
For ModelNet40, this would be 40. For SHREC, this would be 30.
NumNeighbors
Gets or sets the number of neighboring edges to consider for each edge.
public int NumNeighbors { get; set; }
Property Value
Remarks
In a triangular mesh, each edge has 4 neighboring edges (2 from each adjacent face). This is the standard value and should not be changed unless using a different mesh type.
PoolTargets
Gets or sets the target edge counts after each pooling operation.
public int[] PoolTargets { get; set; }
Property Value
- int[]
Remarks
Each pooling layer reduces the number of edges to the specified target. Should have one fewer element than ConvChannels (pooling after each conv except last).
UseBatchNorm
Gets or sets whether to use batch normalization after each conv layer.
public bool UseBatchNorm { get; set; }
Property Value
Remarks
Batch normalization can help training stability and convergence speed.
UseGlobalAveragePooling
Gets or sets whether to use global average pooling before FC layers.
public bool UseGlobalAveragePooling { get; set; }
Property Value
Remarks
If false, uses global max pooling instead.