## 3 Proposed SNNtrainer3D
### User-Friendly GUI and Dynamic Architecture Editing
The LIF model offers high computational efficiency at the cost of reduced biological plausibility, while the Lapicque, Synaptic, and Alpha models trade some computational efficiency for increased biological realism [27]. The choice of model depends on the application's specific requirements, balancing the need for biological accuracy with computational constraints. As shown in Figure 2, the user can control the hyperparameter values of the SNN architecture, such as the number of epochs, the learning rate, the beta value, the number of training steps, and the batch size. These hyperparameters control the learning dynamics of the SNN and need to be carefully tuned through experimentation to achieve good performance on a given dataset. An epoch is one complete pass through the entire training dataset. Multiple epochs are used to iteratively update the network's weights to minimize the loss function (as of now, by default, the cross-entropy loss function algorithm is used due to only using the MNIST dataset). More epochs generally improve performance, but too many can cause overfitting. The learning rate controls the size of the weight updates applied to the network after each batch. A higher learning rate means the network adapts more quickly but may overshoot the optimal weights. A lower learning rate provides slower but more stable learning. The learning rate is one of the most essential hyperparameters and needs to be carefully tuned for each problem. Beta (\(\beta\)) is a parameter of the LIF neuron model used in snnTorch [27]. It controls the decay rate of the membrane potential. \(\beta\) is in the range where \(\beta=0\) means no leak and \(\beta=1\) means the membrane potential resets to zero after each spike. The choice of \(\beta\) affects how quickly information propagates through the network and needs to be tuned based on the problem. The number of training steps determines how often the network weights are updated within each epoch. More training steps provide finer granularity for updating weights but take longer to train. The number of training steps is related to the batch size, as steps_per_epoch = number_of_examples/batch_size. The batch size is the number of training examples used to calculate each weight update. A larger batch size provides a better gradient estimate but requires more memory. Smaller batch sizes provide a noisy gradient but can lead to better generalization. Therefore, the batch size affects the number of training steps per epoch and needs to be chosen based on available computer resources. The MNIST dataset comprises 70.000 handwritten, single-digit images (60,000 for training and 10,000 for testing) between 0 and 9 that are 28 by 28 = 784 pixels in size and in a grayscale format (each pixel value is a grayscale integer between 0 and 255). To achieve the best results using the MNIST dataset, it is advised that users increase the number of epochs and layers but only add layers of size 10 or do a triangular arrangement, starting from a big number and decreasing to 10, e.g., 30, 25, 20, 15, 10, and never less than 10 (due to the MNIST dataset used having ten classes). It is also advised to keep all other hyperparameters seen in Figure 2 as they are. Also, the proposed application includes functionality to download and prepare the MNIST dataset for training, as seen in Figure 4a). Once this is done, users can train the designed SNN model on the downloaded dataset. A progress bar indicates the training progress, as seen in Figure 4b. After training, users are informed about the model's accuracy on the test set, as seen in Figure 5a and offered the option to save the trained weights (Figure 5b) for further use or inference in other scripts. When creating this feature, it was made sure to convert any data type to.json serializable and used tagging to avoid losing information in this conversion, this way being compatible with any software that can read.json (also with circuit simulators such as  
Figure 4: Summarized view of the proposed SNNtrainer3D GUI.