Skip to content

Rust version of the exercises from the "Deep Learning on ARM Processors from ground up" course - WIP

Notifications You must be signed in to change notification settings

nebelgrau77/STM32L0_SimpleNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exercises from the "Deep Learning on ARM processors from the ground up" course:

https://www.udemy.com/course/deep-learning-from-ground-uptm-on-arm-processors/

ported to Rust.

So far got to lecture 27, the following functions are available from the helpers/nn module:

  • multiple input, single output
  • single input, multiple output
  • multiple input, multiple output
  • multiple input, multiple output with hidden layer
  • comparing and finding error
  • normalization
  • random weights initialization
  • brute force learning

with the following private functions they use:

  • weighted sum
  • elementwise multiply
  • matrix vector multplication
  • sigmoid activation function

The target is STM32L0xx MCU, in my case Nucleo-32 STM32L031K6 dev board. To experiment with low power consumption the code uses MSI oscillator as main clock source, and LSE 32 kHz oscillator as Low Power UART clock source.

It's my work in progress, so things are just commented out for now, as I go ahead with the course :)

updates:

  • all arrays used as function arguments are now array slices without a specified lenght
  • in order to make it work in all cases, the weights matrices were flattened to 1D arrays
  • all NN-model related indices, dimensions and weights were moved into model.rs: this should make the maintenance easier, and possibly allow to generate the model.rs file from a script doing the model training

TO DO:

  • keep adding functions :)

PROBLEMS:

  • there seems to be an issue with the LSE setup: it seems like the LSEON bit is not being set after power-up, at least most of the time. Reasons currently unknown.

About

Rust version of the exercises from the "Deep Learning on ARM Processors from ground up" course - WIP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages