Linuxbaserade processorsystem VS FreeRTOS

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
guckrum
Inlägg: 1690
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av guckrum »

Hittade ett exempel på GitHub som använder en av dom största ST processorna.
https://github.com/ABurrello/CubeMX-AI-demo
Ett åttalagers nät, funkar nog på CIFAR-storlek. Nöjer du dig med att skilja på båtar och katter i 32x32 pixels är det väl bra. Hur snabbt går det?
Nu såg jag något! Om detta är sant så kan jag ju använda en vanlig Nucleo då. Jag börjar inse att priset sticker iväg när man vill ha lite mer RAM och FLASH.
Såklar kan du spara aktiveringar i externt RAM och vikter i externt ROM. Man kan ju köra neuralnät på en 6502 på det sättet om man vill. Men kolla om det uppfyller dina prestandakrav.
DanielM
Inlägg: 2193
Blev medlem: 5 september 2019, 14:19:58

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av DanielM »

Jag blir riktigt glad om det skulle fungera. Men jag vet inte vad jag ska ha ett sådant nätverk till om det kan bara klassificera 10 objekt. Det känns som om att man ska ha bildigenkänning så ska man ha riktig bildigenkänning.

Jo. Men vart får man tag på detta externt ROM och RAM då?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av Micke_s »

Tittar du på de större STM32 så har de QSPI interface.

Väljer du då ett minne som stöder QSPI så kan du mappa minnet in i vanliga 32bit minensrymden som "read-only".
Skrivning får du ha i en separat rutin mot QSPI, fast det gör du bara när du laddar ner konstanterna.

Vissa stöder dessutom dual QSPI Flash, då får du rätt så bra bandbredd mot minnet.
QSPI flash finns som SO-8 t.ex.
DanielM
Inlägg: 2193
Blev medlem: 5 september 2019, 14:19:58

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av DanielM »

Tackar! Känner till QuadSPI faktiskt. Finns för flash endast.

Nu har även CubeMX AI stöd för extra ram och flash. Så jag antar att man ska använda detta om man vill implementera NN på inbyggda system.



Jag håller på forska kring hur mycket ett bra vältränat NN tar för minne på en STM32 F446RE
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av Rick81 »

Detta devkit har ju 16 MB RAM och 16 MB flash:
https://www.st.com/en/evaluation-tools/ ... overy.html

och en schysst display och anslutning för kamera.

Borde passa dig rätt bra...
DanielM
Inlägg: 2193
Blev medlem: 5 september 2019, 14:19:58

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av DanielM »

Jag testade en ONNX modell av MobileNet2-7 och analyserade den med CubeMX AI 5.1.0
Så skulle jag ha RAM på minst 6 MB och Flash på minst 16 MB så skulle jag klara mig.

Analyzing model
/home/hp/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/5.1.2/Utilities/linux/stm32ai analyze --name network -m /home/hp/Téléchargements/mobilenetv2-7.onnx --type onnx --compression 1 --verbosity 1 --workspace /tmp/mxAI_workspace10075127057889205763162125289940 --output /home/hp/.stm32cubemx/stm32ai_output 
Neural Network Tools for STM32 v1.3.0 (AI tools v5.1.0)
-- Importing model
-- Importing model - done (elapsed time 2.121s)
-- Rendering model
-- Rendering model - done (elapsed time 0.326s)

Creating report file /home/hp/.stm32cubemx/stm32ai_output/network_analyze_report.txt

Exec/report summary (analyze dur=2.46s err=0)
------------------------------------------------------------------------------------------------------------------------
model file         : /home/hp/Téléchargements/mobilenetv2-7.onnx
type               : onnx (onnx) 
c_name             : network
compression        : None
quantize           : None
workspace dir      : /tmp/mxAI_workspace10075127057889205763162125289940
output dir         : /home/hp/.stm32cubemx/stm32ai_output

model_name         : mobilenetv27
model_hash         : 1b8a2fd91dc2b6c78f3cfe846cf16c88
input              : data [150,528 items, 588.00 KiB, ai_float, FLOAT32, (224, 224, 3)]
inputs (total)     : 588.00 KiB
output             : mobilenetv20_output_pred_fwd [1,000 items, 3.91 KiB, ai_float, FLOAT32, (1000,)]
outputs (total)    : 3.91 KiB
params #           : 3,487,872 items (13.31 MiB)
macc               : 437,721,664
weights (ro)       : 13,955,488 B (13.31 MiB) (0.03%) 
activations (rw)   : 4,882,176 B (4.66 MiB) 
ram (total)        : 5,488,288 B (5.23 MiB) = 4,882,176 + 602,112 + 4,000

------------------------------------------------------------------------------------------------------------------------
id  layer (type)                                                      output shape      param #     connected to             macc           rom                
------------------------------------------------------------------------------------------------------------------------
0   data (Input)                                                      (224, 224, 3)                                                                            
    mobilenetv20_features_conv0_fwd (Conv2D)                          (112, 112, 32)    896         data                     11,239,456     3,584              
------------------------------------------------------------------------------------------------------------------------
1   mobilenetv20_features_relu0_fwd (Nonlinearity)                    (112, 112, 32)                mobilenetv20_features_co                                   
------------------------------------------------------------------------------------------------------------------------
2   mobilenetv20_features_linearbottleneck0_conv0_fwd (Conv2D)        (112, 112, 32)    1,056       mobilenetv20_features_re 13,246,496     4,224              
------------------------------------------------------------------------------------------------------------------------
3   mobilenetv20_features_linearbottleneck0_relu0_fwd (Nonlinearity)  (112, 112, 32)                mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
4   mobilenetv20_features_linearbottleneck0_conv1_fwd (Conv2D)        (112, 112, 32)    320         mobilenetv20_features_li 4,014,112      1,280              
------------------------------------------------------------------------------------------------------------------------
5   mobilenetv20_features_linearbottleneck0_relu1_fwd (Nonlinearity)  (112, 112, 32)                mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
6   mobilenetv20_features_linearbottleneck0_conv2_fwd (Conv2D)        (112, 112, 16)    528         mobilenetv20_features_li 6,422,544      2,112              
------------------------------------------------------------------------------------------------------------------------
7   mobilenetv20_features_linearbottleneck1_conv0_fwd (Conv2D)        (112, 112, 96)    1,632       mobilenetv20_features_li 20,471,904     6,528              
------------------------------------------------------------------------------------------------------------------------
8   mobilenetv20_features_linearbottleneck1_relu0_fwd (Nonlinearity)  (112, 112, 96)                mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
9   mobilenetv20_features_linearbottleneck1_conv1_fwd (Conv2D)        (56, 56, 96)      960         mobilenetv20_features_li 3,010,656      3,840              
------------------------------------------------------------------------------------------------------------------------
10  mobilenetv20_features_linearbottleneck1_relu1_fwd (Nonlinearity)  (56, 56, 96)                  mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
11  mobilenetv20_features_linearbottleneck1_conv2_fwd (Conv2D)        (56, 56, 24)      2,328       mobilenetv20_features_li 7,225,368      9,312              
------------------------------------------------------------------------------------------------------------------------
12  mobilenetv20_features_linearbottleneck2_conv0_fwd (Conv2D)        (56, 56, 144)     3,600       mobilenetv20_features_li 11,289,744     14,400             
------------------------------------------------------------------------------------------------------------------------
13  mobilenetv20_features_linearbottleneck2_relu0_fwd (Nonlinearity)  (56, 56, 144)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
14  mobilenetv20_features_linearbottleneck2_conv1_fwd (Conv2D)        (56, 56, 144)     1,440       mobilenetv20_features_li 4,515,984      5,760              
------------------------------------------------------------------------------------------------------------------------
15  mobilenetv20_features_linearbottleneck2_relu1_fwd (Nonlinearity)  (56, 56, 144)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
16  mobilenetv20_features_linearbottleneck2_conv2_fwd (Conv2D)        (56, 56, 24)      3,480       mobilenetv20_features_li 10,838,040     13,920             
------------------------------------------------------------------------------------------------------------------------
17  mobilenetv20_features_linearbottleneck2_elemwise_add0 (Eltwise)   (56, 56, 24)                  mobilenetv20_features_li 75,264                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
18  mobilenetv20_features_linearbottleneck3_conv0_fwd (Conv2D)        (56, 56, 144)     3,600       mobilenetv20_features_li 11,289,744     14,400             
------------------------------------------------------------------------------------------------------------------------
19  mobilenetv20_features_linearbottleneck3_relu0_fwd (Nonlinearity)  (56, 56, 144)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
20  mobilenetv20_features_linearbottleneck3_conv1_fwd (Conv2D)        (28, 28, 144)     1,440       mobilenetv20_features_li 1,129,104      5,760              
------------------------------------------------------------------------------------------------------------------------
21  mobilenetv20_features_linearbottleneck3_relu1_fwd (Nonlinearity)  (28, 28, 144)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
22  mobilenetv20_features_linearbottleneck3_conv2_fwd (Conv2D)        (28, 28, 32)      4,640       mobilenetv20_features_li 3,612,704      18,560             
------------------------------------------------------------------------------------------------------------------------
23  mobilenetv20_features_linearbottleneck4_conv0_fwd (Conv2D)        (28, 28, 192)     6,336       mobilenetv20_features_li 4,967,616      25,344             
------------------------------------------------------------------------------------------------------------------------
24  mobilenetv20_features_linearbottleneck4_relu0_fwd (Nonlinearity)  (28, 28, 192)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
25  mobilenetv20_features_linearbottleneck4_conv1_fwd (Conv2D)        (28, 28, 192)     1,920       mobilenetv20_features_li 1,505,472      7,680              
------------------------------------------------------------------------------------------------------------------------
26  mobilenetv20_features_linearbottleneck4_relu1_fwd (Nonlinearity)  (28, 28, 192)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
27  mobilenetv20_features_linearbottleneck4_conv2_fwd (Conv2D)        (28, 28, 32)      6,176       mobilenetv20_features_li 4,816,928      24,704             
------------------------------------------------------------------------------------------------------------------------
28  mobilenetv20_features_linearbottleneck4_elemwise_add0 (Eltwise)   (28, 28, 32)                  mobilenetv20_features_li 25,088                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
29  mobilenetv20_features_linearbottleneck5_conv0_fwd (Conv2D)        (28, 28, 192)     6,336       mobilenetv20_features_li 4,967,616      25,344             
------------------------------------------------------------------------------------------------------------------------
30  mobilenetv20_features_linearbottleneck5_relu0_fwd (Nonlinearity)  (28, 28, 192)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
31  mobilenetv20_features_linearbottleneck5_conv1_fwd (Conv2D)        (28, 28, 192)     1,920       mobilenetv20_features_li 1,505,472      7,680              
------------------------------------------------------------------------------------------------------------------------
32  mobilenetv20_features_linearbottleneck5_relu1_fwd (Nonlinearity)  (28, 28, 192)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
33  mobilenetv20_features_linearbottleneck5_conv2_fwd (Conv2D)        (28, 28, 32)      6,176       mobilenetv20_features_li 4,816,928      24,704             
------------------------------------------------------------------------------------------------------------------------
34  mobilenetv20_features_linearbottleneck5_elemwise_add0 (Eltwise)   (28, 28, 32)                  mobilenetv20_features_li 25,088                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
35  mobilenetv20_features_linearbottleneck6_conv0_fwd (Conv2D)        (28, 28, 192)     6,336       mobilenetv20_features_li 4,967,616      25,344             
------------------------------------------------------------------------------------------------------------------------
36  mobilenetv20_features_linearbottleneck6_relu0_fwd (Nonlinearity)  (28, 28, 192)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
37  mobilenetv20_features_linearbottleneck6_conv1_fwd (Conv2D)        (28, 28, 192)     1,920       mobilenetv20_features_li 1,505,472      7,680              
------------------------------------------------------------------------------------------------------------------------
38  mobilenetv20_features_linearbottleneck6_relu1_fwd (Nonlinearity)  (28, 28, 192)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
39  mobilenetv20_features_linearbottleneck6_conv2_fwd (Conv2D)        (28, 28, 64)      12,352      mobilenetv20_features_li 9,633,856      49,408             
------------------------------------------------------------------------------------------------------------------------
40  mobilenetv20_features_linearbottleneck7_conv0_fwd (Conv2D)        (28, 28, 384)     24,960      mobilenetv20_features_li 19,569,024     99,840             
------------------------------------------------------------------------------------------------------------------------
41  mobilenetv20_features_linearbottleneck7_relu0_fwd (Nonlinearity)  (28, 28, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
42  mobilenetv20_features_linearbottleneck7_conv1_fwd (Conv2D)        (28, 28, 384)     3,840       mobilenetv20_features_li 3,010,944      15,360             
------------------------------------------------------------------------------------------------------------------------
43  mobilenetv20_features_linearbottleneck7_relu1_fwd (Nonlinearity)  (28, 28, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
44  mobilenetv20_features_linearbottleneck7_conv2_fwd (Conv2D)        (28, 28, 64)      24,640      mobilenetv20_features_li 19,267,648     98,560             
------------------------------------------------------------------------------------------------------------------------
45  mobilenetv20_features_linearbottleneck7_elemwise_add0 (Eltwise)   (28, 28, 64)                  mobilenetv20_features_li 50,176                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
46  mobilenetv20_features_linearbottleneck8_conv0_fwd (Conv2D)        (28, 28, 384)     24,960      mobilenetv20_features_li 19,569,024     99,840             
------------------------------------------------------------------------------------------------------------------------
47  mobilenetv20_features_linearbottleneck8_relu0_fwd (Nonlinearity)  (28, 28, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
48  mobilenetv20_features_linearbottleneck8_conv1_fwd (Conv2D)        (28, 28, 384)     3,840       mobilenetv20_features_li 3,010,944      15,360             
------------------------------------------------------------------------------------------------------------------------
49  mobilenetv20_features_linearbottleneck8_relu1_fwd (Nonlinearity)  (28, 28, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
50  mobilenetv20_features_linearbottleneck8_conv2_fwd (Conv2D)        (28, 28, 64)      24,640      mobilenetv20_features_li 19,267,648     98,560             
------------------------------------------------------------------------------------------------------------------------
51  mobilenetv20_features_linearbottleneck8_elemwise_add0 (Eltwise)   (28, 28, 64)                  mobilenetv20_features_li 50,176                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
52  mobilenetv20_features_linearbottleneck9_conv0_fwd (Conv2D)        (28, 28, 384)     24,960      mobilenetv20_features_li 19,569,024     99,840             
------------------------------------------------------------------------------------------------------------------------
53  mobilenetv20_features_linearbottleneck9_relu0_fwd (Nonlinearity)  (28, 28, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
54  mobilenetv20_features_linearbottleneck9_conv1_fwd (Conv2D)        (28, 28, 384)     3,840       mobilenetv20_features_li 3,010,944      15,360             
------------------------------------------------------------------------------------------------------------------------
55  mobilenetv20_features_linearbottleneck9_relu1_fwd (Nonlinearity)  (28, 28, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
56  mobilenetv20_features_linearbottleneck9_conv2_fwd (Conv2D)        (28, 28, 64)      24,640      mobilenetv20_features_li 19,267,648     98,560             
------------------------------------------------------------------------------------------------------------------------
57  mobilenetv20_features_linearbottleneck9_elemwise_add0 (Eltwise)   (28, 28, 64)                  mobilenetv20_features_li 50,176                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
58  mobilenetv20_features_linearbottleneck10_conv0_fwd (Conv2D)       (28, 28, 384)     24,960      mobilenetv20_features_li 19,569,024     99,840             
------------------------------------------------------------------------------------------------------------------------
59  mobilenetv20_features_linearbottleneck10_relu0_fwd (Nonlinearity) (28, 28, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
60  mobilenetv20_features_linearbottleneck10_conv1_fwd (Conv2D)       (14, 14, 384)     3,840       mobilenetv20_features_li 753,024        15,360             
------------------------------------------------------------------------------------------------------------------------
61  mobilenetv20_features_linearbottleneck10_relu1_fwd (Nonlinearity) (14, 14, 384)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
62  mobilenetv20_features_linearbottleneck10_conv2_fwd (Conv2D)       (14, 14, 96)      36,960      mobilenetv20_features_li 7,225,440      147,840            
------------------------------------------------------------------------------------------------------------------------
63  mobilenetv20_features_linearbottleneck11_conv0_fwd (Conv2D)       (14, 14, 576)     55,872      mobilenetv20_features_li 10,951,488     223,488            
------------------------------------------------------------------------------------------------------------------------
64  mobilenetv20_features_linearbottleneck11_relu0_fwd (Nonlinearity) (14, 14, 576)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
65  mobilenetv20_features_linearbottleneck11_conv1_fwd (Conv2D)       (14, 14, 576)     5,760       mobilenetv20_features_li 1,129,536      23,040             
------------------------------------------------------------------------------------------------------------------------
66  mobilenetv20_features_linearbottleneck11_relu1_fwd (Nonlinearity) (14, 14, 576)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
67  mobilenetv20_features_linearbottleneck11_conv2_fwd (Conv2D)       (14, 14, 96)      55,392      mobilenetv20_features_li 10,838,112     221,568            
------------------------------------------------------------------------------------------------------------------------
68  mobilenetv20_features_linearbottleneck11_elemwise_add0 (Eltwise)  (14, 14, 96)                  mobilenetv20_features_li 18,816                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
69  mobilenetv20_features_linearbottleneck12_conv0_fwd (Conv2D)       (14, 14, 576)     55,872      mobilenetv20_features_li 10,951,488     223,488            
------------------------------------------------------------------------------------------------------------------------
70  mobilenetv20_features_linearbottleneck12_relu0_fwd (Nonlinearity) (14, 14, 576)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
71  mobilenetv20_features_linearbottleneck12_conv1_fwd (Conv2D)       (14, 14, 576)     5,760       mobilenetv20_features_li 1,129,536      23,040             
------------------------------------------------------------------------------------------------------------------------
72  mobilenetv20_features_linearbottleneck12_relu1_fwd (Nonlinearity) (14, 14, 576)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
73  mobilenetv20_features_linearbottleneck12_conv2_fwd (Conv2D)       (14, 14, 96)      55,392      mobilenetv20_features_li 10,838,112     221,568            
------------------------------------------------------------------------------------------------------------------------
74  mobilenetv20_features_linearbottleneck12_elemwise_add0 (Eltwise)  (14, 14, 96)                  mobilenetv20_features_li 18,816                            
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
75  mobilenetv20_features_linearbottleneck13_conv0_fwd (Conv2D)       (14, 14, 576)     55,872      mobilenetv20_features_li 10,951,488     223,488            
------------------------------------------------------------------------------------------------------------------------
76  mobilenetv20_features_linearbottleneck13_relu0_fwd (Nonlinearity) (14, 14, 576)                 mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
77  mobilenetv20_features_linearbottleneck13_conv1_fwd (Conv2D)       (7, 7, 576)       5,760       mobilenetv20_features_li 282,816        23,040             
------------------------------------------------------------------------------------------------------------------------
78  mobilenetv20_features_linearbottleneck13_relu1_fwd (Nonlinearity) (7, 7, 576)                   mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
79  mobilenetv20_features_linearbottleneck13_conv2_fwd (Conv2D)       (7, 7, 160)       92,320      mobilenetv20_features_li 4,516,000      369,280            
------------------------------------------------------------------------------------------------------------------------
80  mobilenetv20_features_linearbottleneck14_conv0_fwd (Conv2D)       (7, 7, 960)       154,560     mobilenetv20_features_li 7,574,400      618,240            
------------------------------------------------------------------------------------------------------------------------
81  mobilenetv20_features_linearbottleneck14_relu0_fwd (Nonlinearity) (7, 7, 960)                   mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
82  mobilenetv20_features_linearbottleneck14_conv1_fwd (Conv2D)       (7, 7, 960)       9,600       mobilenetv20_features_li 471,360        38,400             
------------------------------------------------------------------------------------------------------------------------
83  mobilenetv20_features_linearbottleneck14_relu1_fwd (Nonlinearity) (7, 7, 960)                   mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
84  mobilenetv20_features_linearbottleneck14_conv2_fwd (Conv2D)       (7, 7, 160)       153,760     mobilenetv20_features_li 7,526,560      615,040            
------------------------------------------------------------------------------------------------------------------------
85  mobilenetv20_features_linearbottleneck14_elemwise_add0 (Eltwise)  (7, 7, 160)                   mobilenetv20_features_li 7,840                             
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
86  mobilenetv20_features_linearbottleneck15_conv0_fwd (Conv2D)       (7, 7, 960)       154,560     mobilenetv20_features_li 7,574,400      618,240            
------------------------------------------------------------------------------------------------------------------------
87  mobilenetv20_features_linearbottleneck15_relu0_fwd (Nonlinearity) (7, 7, 960)                   mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
88  mobilenetv20_features_linearbottleneck15_conv1_fwd (Conv2D)       (7, 7, 960)       9,600       mobilenetv20_features_li 471,360        38,400             
------------------------------------------------------------------------------------------------------------------------
89  mobilenetv20_features_linearbottleneck15_relu1_fwd (Nonlinearity) (7, 7, 960)                   mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
90  mobilenetv20_features_linearbottleneck15_conv2_fwd (Conv2D)       (7, 7, 160)       153,760     mobilenetv20_features_li 7,526,560      615,040            
------------------------------------------------------------------------------------------------------------------------
91  mobilenetv20_features_linearbottleneck15_elemwise_add0 (Eltwise)  (7, 7, 160)                   mobilenetv20_features_li 7,840                             
                                                                                                    mobilenetv20_features_li
------------------------------------------------------------------------------------------------------------------------
92  mobilenetv20_features_linearbottleneck16_conv0_fwd (Conv2D)       (7, 7, 960)       154,560     mobilenetv20_features_li 7,574,400      618,240            
------------------------------------------------------------------------------------------------------------------------
93  mobilenetv20_features_linearbottleneck16_relu0_fwd (Nonlinearity) (7, 7, 960)                   mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
94  mobilenetv20_features_linearbottleneck16_conv1_fwd (Conv2D)       (7, 7, 960)       9,600       mobilenetv20_features_li 471,360        38,400             
------------------------------------------------------------------------------------------------------------------------
95  mobilenetv20_features_linearbottleneck16_relu1_fwd (Nonlinearity) (7, 7, 960)                   mobilenetv20_features_li                                   
------------------------------------------------------------------------------------------------------------------------
96  mobilenetv20_features_linearbottleneck16_conv2_fwd (Conv2D)       (7, 7, 320)       307,520     mobilenetv20_features_li 15,053,120     1,230,080          
------------------------------------------------------------------------------------------------------------------------
97  mobilenetv20_features_conv1_fwd (Conv2D)                          (7, 7, 1280)      410,880     mobilenetv20_features_li 20,197,120     1,643,520          
------------------------------------------------------------------------------------------------------------------------
98  mobilenetv20_features_relu1_fwd (Nonlinearity)                    (7, 7, 1280)                  mobilenetv20_features_co                                   
------------------------------------------------------------------------------------------------------------------------
99  mobilenetv20_features_pool0_fwd (Pool)                            (1, 1, 1280)                  mobilenetv20_features_re                                   
------------------------------------------------------------------------------------------------------------------------
100 mobilenetv20_output_pred_fwd (Conv2D)                             (1, 1, 1000)      1,280,000   mobilenetv20_features_po 1,280,000      5,124,000          
------------------------------------------------------------------------------------------------------------------------
101 mobilenetv20_output_flatten0_reshape0 (Reshape)                   (1000,)                       mobilenetv20_output_pred                                   
------------------------------------------------------------------------------------------------------------------------
mobilenetv27 p=3487872(13.31 MBytes) macc=437721664 rom=13.31 MBytes (0.03%) ram=4.66 MiB io_ram=591.91 KiB

 
Complexity per-layer - macc=437,721,664 rom=13,955,488
------------------------------------------------------------------------------------------------------------------------
id      layer (type)                                                      macc                                    rom                                    
------------------------------------------------------------------------------------------------------------------------
0       mobilenetv20_features_conv0_fwd (Conv2D)                          |||||||||||||||||                 2.6%  |                                 0.0% 
2       mobilenetv20_features_linearbottleneck0_conv0_fwd (Conv2D)        ||||||||||||||||||||              3.0%  |                                 0.0% 
4       mobilenetv20_features_linearbottleneck0_conv1_fwd (Conv2D)        ||||||                            0.9%  |                                 0.0% 
6       mobilenetv20_features_linearbottleneck0_conv2_fwd (Conv2D)        ||||||||||                        1.5%  |                                 0.0% 
7       mobilenetv20_features_linearbottleneck1_conv0_fwd (Conv2D)        |||||||||||||||||||||||||||||||   4.7%  |                                 0.0% 
9       mobilenetv20_features_linearbottleneck1_conv1_fwd (Conv2D)        |||||                             0.7%  |                                 0.0% 
11      mobilenetv20_features_linearbottleneck1_conv2_fwd (Conv2D)        |||||||||||                       1.7%  |                                 0.1% 
12      mobilenetv20_features_linearbottleneck2_conv0_fwd (Conv2D)        |||||||||||||||||                 2.6%  |                                 0.1% 
14      mobilenetv20_features_linearbottleneck2_conv1_fwd (Conv2D)        |||||||                           1.0%  |                                 0.0% 
16      mobilenetv20_features_linearbottleneck2_conv2_fwd (Conv2D)        ||||||||||||||||                  2.5%  |                                 0.1% 
17      mobilenetv20_features_linearbottleneck2_elemwise_add0 (Eltwise)   |                                 0.0%  |                                 0.0% 
18      mobilenetv20_features_linearbottleneck3_conv0_fwd (Conv2D)        |||||||||||||||||                 2.6%  |                                 0.1% 
20      mobilenetv20_features_linearbottleneck3_conv1_fwd (Conv2D)        ||                                0.3%  |                                 0.0% 
22      mobilenetv20_features_linearbottleneck3_conv2_fwd (Conv2D)        ||||||                            0.8%  |                                 0.1% 
23      mobilenetv20_features_linearbottleneck4_conv0_fwd (Conv2D)        ||||||||                          1.1%  |                                 0.2% 
25      mobilenetv20_features_linearbottleneck4_conv1_fwd (Conv2D)        |||                               0.3%  |                                 0.1% 
27      mobilenetv20_features_linearbottleneck4_conv2_fwd (Conv2D)        ||||||||                          1.1%  |                                 0.2% 
28      mobilenetv20_features_linearbottleneck4_elemwise_add0 (Eltwise)   |                                 0.0%  |                                 0.0% 
29      mobilenetv20_features_linearbottleneck5_conv0_fwd (Conv2D)        ||||||||                          1.1%  |                                 0.2% 
31      mobilenetv20_features_linearbottleneck5_conv1_fwd (Conv2D)        |||                               0.3%  |                                 0.1% 
33      mobilenetv20_features_linearbottleneck5_conv2_fwd (Conv2D)        ||||||||                          1.1%  |                                 0.2% 
34      mobilenetv20_features_linearbottleneck5_elemwise_add0 (Eltwise)   |                                 0.0%  |                                 0.0% 
35      mobilenetv20_features_linearbottleneck6_conv0_fwd (Conv2D)        ||||||||                          1.1%  |                                 0.2% 
37      mobilenetv20_features_linearbottleneck6_conv1_fwd (Conv2D)        |||                               0.3%  |                                 0.1% 
39      mobilenetv20_features_linearbottleneck6_conv2_fwd (Conv2D)        |||||||||||||||                   2.2%  |                                 0.4% 
40      mobilenetv20_features_linearbottleneck7_conv0_fwd (Conv2D)        |||||||||||||||||||||||||||||     4.5%  |                                 0.7% 
42      mobilenetv20_features_linearbottleneck7_conv1_fwd (Conv2D)        |||||                             0.7%  |                                 0.1% 
44      mobilenetv20_features_linearbottleneck7_conv2_fwd (Conv2D)        |||||||||||||||||||||||||||||     4.4%  |                                 0.7% 
45      mobilenetv20_features_linearbottleneck7_elemwise_add0 (Eltwise)   |                                 0.0%  |                                 0.0% 
46      mobilenetv20_features_linearbottleneck8_conv0_fwd (Conv2D)        |||||||||||||||||||||||||||||     4.5%  |                                 0.7% 
48      mobilenetv20_features_linearbottleneck8_conv1_fwd (Conv2D)        |||||                             0.7%  |                                 0.1% 
50      mobilenetv20_features_linearbottleneck8_conv2_fwd (Conv2D)        |||||||||||||||||||||||||||||     4.4%  |                                 0.7% 
51      mobilenetv20_features_linearbottleneck8_elemwise_add0 (Eltwise)   |                                 0.0%  |                                 0.0% 
52      mobilenetv20_features_linearbottleneck9_conv0_fwd (Conv2D)        |||||||||||||||||||||||||||||     4.5%  |                                 0.7% 
54      mobilenetv20_features_linearbottleneck9_conv1_fwd (Conv2D)        |||||                             0.7%  |                                 0.1% 
56      mobilenetv20_features_linearbottleneck9_conv2_fwd (Conv2D)        |||||||||||||||||||||||||||||     4.4%  |                                 0.7% 
57      mobilenetv20_features_linearbottleneck9_elemwise_add0 (Eltwise)   |                                 0.0%  |                                 0.0% 
58      mobilenetv20_features_linearbottleneck10_conv0_fwd (Conv2D)       |||||||||||||||||||||||||||||     4.5%  |                                 0.7% 
60      mobilenetv20_features_linearbottleneck10_conv1_fwd (Conv2D)       ||                                0.2%  |                                 0.1% 
62      mobilenetv20_features_linearbottleneck10_conv2_fwd (Conv2D)       |||||||||||                       1.7%  |                                 1.1% 
63      mobilenetv20_features_linearbottleneck11_conv0_fwd (Conv2D)       |||||||||||||||||                 2.5%  ||                                1.6% 
65      mobilenetv20_features_linearbottleneck11_conv1_fwd (Conv2D)       ||                                0.3%  |                                 0.2% 
67      mobilenetv20_features_linearbottleneck11_conv2_fwd (Conv2D)       ||||||||||||||||                  2.5%  ||                                1.6% 
68      mobilenetv20_features_linearbottleneck11_elemwise_add0 (Eltwise)  |                                 0.0%  |                                 0.0% 
69      mobilenetv20_features_linearbottleneck12_conv0_fwd (Conv2D)       |||||||||||||||||                 2.5%  ||                                1.6% 
71      mobilenetv20_features_linearbottleneck12_conv1_fwd (Conv2D)       ||                                0.3%  |                                 0.2% 
73      mobilenetv20_features_linearbottleneck12_conv2_fwd (Conv2D)       ||||||||||||||||                  2.5%  ||                                1.6% 
74      mobilenetv20_features_linearbottleneck12_elemwise_add0 (Eltwise)  |                                 0.0%  |                                 0.0% 
75      mobilenetv20_features_linearbottleneck13_conv0_fwd (Conv2D)       |||||||||||||||||                 2.5%  ||                                1.6% 
77      mobilenetv20_features_linearbottleneck13_conv1_fwd (Conv2D)       |                                 0.1%  |                                 0.2% 
79      mobilenetv20_features_linearbottleneck13_conv2_fwd (Conv2D)       |||||||                           1.0%  |||                               2.6% 
80      mobilenetv20_features_linearbottleneck14_conv0_fwd (Conv2D)       ||||||||||||                      1.7%  ||||                              4.4% 
82      mobilenetv20_features_linearbottleneck14_conv1_fwd (Conv2D)       |                                 0.1%  |                                 0.3% 
84      mobilenetv20_features_linearbottleneck14_conv2_fwd (Conv2D)       ||||||||||||                      1.7%  ||||                              4.4% 
85      mobilenetv20_features_linearbottleneck14_elemwise_add0 (Eltwise)  |                                 0.0%  |                                 0.0% 
86      mobilenetv20_features_linearbottleneck15_conv0_fwd (Conv2D)       ||||||||||||                      1.7%  ||||                              4.4% 
88      mobilenetv20_features_linearbottleneck15_conv1_fwd (Conv2D)       |                                 0.1%  |                                 0.3% 
90      mobilenetv20_features_linearbottleneck15_conv2_fwd (Conv2D)       ||||||||||||                      1.7%  ||||                              4.4% 
91      mobilenetv20_features_linearbottleneck15_elemwise_add0 (Eltwise)  |                                 0.0%  |                                 0.0% 
92      mobilenetv20_features_linearbottleneck16_conv0_fwd (Conv2D)       ||||||||||||                      1.7%  ||||                              4.4% 
94      mobilenetv20_features_linearbottleneck16_conv1_fwd (Conv2D)       |                                 0.1%  |                                 0.3% 
96      mobilenetv20_features_linearbottleneck16_conv2_fwd (Conv2D)       |||||||||||||||||||||||           3.4%  ||||||||                          8.8% 
97      mobilenetv20_features_conv1_fwd (Conv2D)                          ||||||||||||||||||||||||||||||    4.6%  ||||||||||                       11.8% 
100     mobilenetv20_output_pred_fwd (Conv2D)                             ||                                0.3%  |||||||||||||||||||||||||||||||  36.7% 
------------------------------------------------------------------------------------------------------------------------

elapsed time (analyze): 2.46s
Analyze complete on AI model
Required Ram or Flash size for network is bigger than available Ram or Flash
Senast redigerad av DanielM 30 juli 2020, 23:11:08, redigerad totalt 1 gång.
DanielM
Inlägg: 2193
Blev medlem: 5 september 2019, 14:19:58

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av DanielM »

Rick81 skrev: 30 juli 2020, 23:02:00 Detta devkit har ju 16 MB RAM och 16 MB flash:
https://www.st.com/en/evaluation-tools/ ... overy.html

och en schysst display och anslutning för kamera.

Borde passa dig rätt bra...
Dryga 600 kr för denna sak. Det kan vara värt med tanke på att jag behöver inte köpa till någon LCD eller extra minne. Bara kamera.

En annan nackdel är att YOLO modeller (modeller som innehåller detektion) verkar inte fungera med CubeMX AI :( Detektion är ju det som är viktigaste.
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av Mr Andersson »

Rick81 skrev: 30 juli 2020, 23:02:00 Detta devkit har ju 16 MB RAM och 16 MB flash:
https://www.st.com/en/evaluation-tools/ ... overy.html

och en schysst display och anslutning för kamera.

Borde passa dig rätt bra...
Det där är ett marknadsföringstrick av ST. Det är 8 MB RAM.
De har tagit ett 16 MB SDRAM och bara anslutit hälften av datalinjerna.
DanielM
Inlägg: 2193
Blev medlem: 5 september 2019, 14:19:58

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av DanielM »

En fråga!

Att få till ett bra neuralt nätverk med Tensor Flow kräver riktigt mycket data. Normalt har man inte denna data tillgängligt, utan man antingen får använda färdiga modeller eller färdiga databaser för att skapa sin modell.

Men problemet som man ofta stöder på inom neurala nätverk är att trots att man har ca 200 bilder på 20 olika personer, så räcker det ändå inte om man vill få en noggrannhet på nära 98%.

https://github.com/mohamed-elsayed-moha ... ecognition

Jag har däremot använt mig av JAFFE och YALE databaserna och här har jag fått nära 99% i noggrannhet. Detta har med att jag använder något som heter FisherFaces. Uppfanns ca 1997, men används flitigt hos OpenCV, vilket är ett C++ ramverk för normal användning av datorseende.

Jag har kod för FisherFaces som jag kanske kan generera till C kod. Men jag har en fråga:

Om jag har en modell på 40x40x100x8x0.001 = 1280 kB array.
Skulle det ta enorm lång tid att utföra matris beräkning på denna array då? Låt oss säga att vi har en CPU på 84 MHz och ingen Freertos. Bara en ren for-loop som utför matris beräkningar (+ - *) på denna stormatris.

Det är bilder på ca 40x40 som är antalet 100 och alla är floats. Detta är alltså modellens storlek. Jag kanske kan få ned modellen till heltal istället, vem vet.
Senast redigerad av DanielM 31 juli 2020, 11:07:19, redigerad totalt 3 gånger.
DanielM
Inlägg: 2193
Blev medlem: 5 september 2019, 14:19:58

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av DanielM »

Mr Andersson skrev: 31 juli 2020, 07:48:22
Det där är ett marknadsföringstrick av ST. Det är 8 MB RAM.
De har tagit ett 16 MB SDRAM och bara anslutit hälften av datalinjerna.
Jag börjar också misstänka att ST vill att man ska lära sig ST's värsta och mest brutala processorer som finns. Alla deras manualer är reklam för F7 processorerna.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av Rick81 »

Det där är ett marknadsföringstrick av ST. Det är 8 MB RAM.
De har tagit ett 16 MB SDRAM och bara anslutit hälften av datalinjerna
Vad fult....
En annan nackdel är att YOLO modeller (modeller som innehåller detektion) verkar inte fungera med CubeMX AI :( Detektion är ju det som är viktigaste.
YOLO funkar inte köra i realtid på en raspberry pi. I så fall får man köra TinyYOLO med sämre noggrannhet och köpa till en USB sticka "Movidius NCS" med AI kretsar:
https://www.pyimagesearch.com/2020/01/2 ... idius-ncs/
Om jag har en modell på 40x40x100x8x0.001 = 1280 kB array.
Skulle det ta enorm lång tid att utföra matris beräkning på denna array då? Låt oss säga att vi har en CPU på 84 MHz och ingen Freertos. Bara en ren for-loop som utför matris beräkningar (+ - *) på denna stormatris.

Det är bilder på ca 40x40 som är antalet 100 och alla är floats. Detta är alltså modellens storlek. Jag kanske kan få ned modellen till heltal istället, vem vet.
Helt omöjlig svara på om du inte exakt beskriver hur beräkningen ser ut, och lättast är göra en test kod och köra på processorn och mäta med timer hur lång tid det tar. Har din STM32 FPU går float lika snabbt som int så länge du bara gör funktioner som finns i hårdvara: multiplikation, division, addition, subtraktion osv..
DanielM
Inlägg: 2193
Blev medlem: 5 september 2019, 14:19:58

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av DanielM »

Jag håller på använda FisherFaces istället för neurala nätverk. Orsaken är att med FisherFaces så kan man använda mindre data för att få en riktigt bra modell. Men modellen kan inte vara lika komplex som ett neuralt nätverk. Men i detta fall så tror jag inte ska behöva denna kompatibilitet då jag varken har elefanter, lejon, flygplan, guldfiskar eller luftballonger hemma.

Vad är snabbast och tar minst minne om man pratar om statiska arrayer? 2D eller 1D?
Jag håller på att bygga en C-kodsgenererare i Java.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av Rick81 »

Vad är snabbast och tar minst minne om man pratar om statiska arrayer? 2D eller 1D?
1D arayer är ju snabbare då bara ett index behövs. Minne beror ju på antal element. Ska din array hålla 1280 kB så blir det ju samma sak om det är 2D eller 1D? Eller?

Försök använda 32 bit tal då processorn jobbar snabbast med dem.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: Linuxbaserade processorsystem VS FreeRTOS

Inlägg av Rick81 »

Pekare är snabbar än index också
Skriv svar