diff --git a/settings/MNIST/CNN_Approx/dataset.json b/settings/MNIST/CNN_Approx/dataset.json new file mode 100644 index 0000000..7f74d48 --- /dev/null +++ b/settings/MNIST/CNN_Approx/dataset.json @@ -0,0 +1,4 @@ +{ + "data_path": "./DATA_MNIST/", + "data_mode": "MNIST" +} diff --git a/settings/MNIST/CNN_Approx/def.json b/settings/MNIST/CNN_Approx/def.json new file mode 100644 index 0000000..226c664 --- /dev/null +++ b/settings/MNIST/CNN_Approx/def.json @@ -0,0 +1,29 @@ +{ + "epoch_id_max": 200, + "batch_size": 24, + "stage_id": 0, + "simulation_id": 0, + "learning_parameters": { + "loss_mode": 1, // X-Entropy + "number_of_batches_for_one_update": 20, + "learning_rate_gamma_w": 0.001, + "lr_scheduler_patience_w": -1, + "adapt_learning_rate_after_minibatch": false, + "w_trainable": [ + true + ] + }, + "augmentation": {}, + "image_statistics": {}, + "approximation_setting": { + "number_of_frac_bits": [ + 30 + ], // Quantization of the mantissa + "approximation_enable": [ + true + ], // In addition to the quantization more approx + "number_of_trunc_bits": [ + 1 + ] + } +} \ No newline at end of file diff --git a/settings/MNIST/CNN_Approx/network.json b/settings/MNIST/CNN_Approx/network.json new file mode 100644 index 0000000..a5f1091 --- /dev/null +++ b/settings/MNIST/CNN_Approx/network.json @@ -0,0 +1,97 @@ +{ + "network_structure": { + "number_of_output_neurons": 10, + "layer_type": [ + "APPROX CONV2D", + "RELU", + "MAX POOLING", + "APPROX CONV2D", + "RELU", + "MAX POOLING", + "APPROX CONV2D", + "RELU", + "APPROX CONV2D" + ], + "strides": [ + [ + 1, + 1 + ], // "CONV2D" + [], // "RELU", + [ + 2, + 2 + ], // "MAX POOLING", + [ + 1, + 1 + ], // "CONV2D" + [], // "RELU", + [ + 2, + 2 + ], // "MAX POOLING", + [ + 1, + 1 + ], // "CONV2D" + [], // "RELU", + [ + 1, + 1 + ] // "CONV2D" + ], + "forward_neuron_numbers": [ + [ + 1, + 32 + ], // "CONV2D", + [], // "RELU", + [], // "MAX POOLING", + [ + 32, + 64 + ], // "CONV2D", + [], // "RELU", + [], // "MAX POOLING", + [ + 64, + 96 + ], // "CONV2D", + [], // "RELU", + [ + 96, + 10 + ] // "CONV2D", + ], + "forward_kernel_size": [ + [ + 5, + 5 + ], // "CONV2D", + [], // "RELU", + [ + 2, + 2 + ], // "MAX POOLING", + [ + 5, + 5 + ], // "CONV2D", + [], // "RELU", + [ + 2, + 2 + ], // "MAX POOLING", + [ + 3, + 3 + ], // "CONV2D", + [], // "RELU", + [ + 1, + 1 + ] // "CONV2D", + ] + } +} \ No newline at end of file