-
CNN on STM32
08/12/2019 at 10:26 • 0 commentsNow capable of running CNN model pre-trained with keras on STM32 with 16KB RAM.
Model Description:
_________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_5 (Conv2D) (None, 28, 28, 2) 20 _________________________________________________________________ max_pooling2d_5 (MaxPooling2 (None, 14, 14, 2) 0 _________________________________________________________________ dropout_5 (Dropout) (None, 14, 14, 2) 0 _________________________________________________________________ conv2d_6 (Conv2D) (None, 14, 14, 2) 38 _________________________________________________________________ max_pooling2d_6 (MaxPooling2 (None, 7, 7, 2) 0 _________________________________________________________________ dropout_6 (Dropout) (None, 7, 7, 2) 0 _________________________________________________________________ flatten_3 (Flatten) (None, 98) 0 _________________________________________________________________ dense_5 (Dense) (None, 4) 396 _________________________________________________________________ dense_6 (Dense) (None, 10) 50 ================================================================= Total params: 504 Trainable params: 504 Non-trainable params: 0 _________________________________________________________________
CNN inference on STM32:
msh />onnx_mnist 1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Predictions: 0.007383 0.000000 0.057510 0.570970 0.000000 0.105505 0.000000 0.000039 0.257576 0.001016 The number is 3
-
Add test results for Arduino M0 Pro
07/13/2019 at 13:03 • 0 commentsMCU Frequency FLASH RAM Train Time Pred Time Accuracy STM32F429IGT6 180MHz 1024KB 256KB 9s 7ms 96.0 STM32F401RET6 84MHz 512KB 96KB 18s 15ms 96.0 STM32L475VET6 80MHz 512KB 128KB 24s 22ms 96.0 STM32F103RCT6 72MHz 256KB 20KB 32s 26ms 96.0 STM32F103C8T6 72MHz 64KB 20KB 32s 26ms 96.0 Arduino M0 Pro 48MHz 256KB 32KB 135s 97ms 96.0 ATmega 2560 16MHz 256KB 8KB 182s 138ms 96.0 -
Benchmark for STM32F1/STM32F4/STM32L4 and Atmega2560
06/28/2019 at 08:55 • 0 commentsBenchmark results on following MCUs:
MCU Frequency FLASH RAM Train Time Pred Time Accuracy STM32F429IGT6 180MHz 1024KB 256KB 9s 7ms 96.0% STM32F401RET6 84MHz 512KB 96KB 18s 15ms 96.0% STM32L475VET6 80MHz 512KB 128KB 24s 22ms 96.0% STM32F103RCT6 72MHz 256KB 20KB 32s 26ms 96.0% STM32F103C8T6 72MHz 64KB 20KB 32s 26ms 96.0% ATmega 2560 16MHz 256KB 8KB 182s 138ms 96.0% The dataset I use is Iris dataset with 150 samples, and the ANN model has 4 inputs, 1 hidden layer with 4 nodes, and 3 outputs, training for 500 loops.