2024-02-04, 07:02 PM
(2024-02-04, 03:43 AM)seandepagnier Wrote:Quote:Learning is where the Model is taught and eventually defined. Teaching a model takes more memory and more time. Whereas an Arduino can run our simplistic model, it would take a little more power to teach the model. But, even an ESP8266 or ESP32 could probably do it and certainly any RasPi. The model described as a matrix has many values in it. The number of valueMy basic tests show the pi zero cannot do online training with few hundred parameters, at least not using tensorflow and python. A pi 4 or pi 5 however potentially can. With more inputs it becomes marginal, and video processing it definitely cannot.
I suspect you are right about tensoflow and/or python. Here are some benchmarks I ran using a C++ coded version.
Model
Basic Back Propagation ANN
196 Input Parameters
12 Parameter Hidden Layer (Matrix [196x12])
10 Outputs (Matrix [12x10])
Apologies, I tend to use Arduino generically since I use the Arduino IDE. I only use ESP8266 and ESP32 for "Arduino" work so I have the WiFi and control via a Web Interface. I hate wasting pins and MPU time pumping out to a wired display.
Benchmarks
ESP8266 @ 80 MHz runs at 66 Hz (This is forward and back propagation combined)
ESP8266 @ 160 MHz = 132 Hz
RasPi Pico W @ 133 MHz = 181 Hz
ESP32-S3 @240 MHz = 1580 Hz
Windows i7 3.3GHz = 43.7 KHz
The Pico, ESP32 and Windows were only using one thread.
I'll see if I can port this over to Raspberry Pi. Shouldn't take that long. I have a Zero-W, 3B+ and 4B-8GB handy to benchmark.