The details of the CNN architecture (Fig. ) are shown in Table . The three PointNet braches have the same architecture. The inputs are matrixes. Each row represents a Bragg disk. Three columns represet the distance to the center Bragg disk r, the angle from the horizontal line θ, and intensity I, respectively. In the convolutional layers, the kernel moves in a 1D direction from top to bottom of the input matrixes since each row is treated as a unit in PointNet. The filters of the convolutional layers extract specific features. A significant difference between PointNet and regular CNN is that there are no pooling layers right after the convolutional layers. Instead, there is a global pooling layer after stacking all convolutional layers to condense a filter as one value. In the original PointNet, the kernel is 1D with size of 1 for the invariance of point sequence in 3D space, which results in the ignorance of information among adjacent points. In this work, the kernel size is set to be greater than 1 to extract and learn information among adjacent Bragg disks, which increases the accuracy. The condensed features from the three PointNets are concateated before being processed by two fully connected layers. At the end, there is an output layer with 7 neurons representing 7 crytal systems. The Rectified Linear Unit (ReLU) activation function is used for all convolutional layers, the fully connected layer, and the output layer. The optimizer is Adam with learning rate of 0.001. The CNN was trained with a batch size of 32 and 10 epochs under the framwork of Tensorflow.