Maskinellt lärande i inbyggda system - Vem är på?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
bearing
Inlägg: 11674
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av bearing »

ESP8266 kan programmeras via Arduinos miljö, alternativt annat sätt. Samma gäller för övrigt STM32. Det hade varit enkelt att få igång webbsidan på ESP8266 via ett exempel i Arduinos miljö, det är det jag säger. Om du bara leker på fritiden ser jag inte hur Arduinos miljö skulle kunna sätta käppar i hjulen för dig. Vid professionel utveckling av produkter använder man såklart något annat.

Lite lustigt att du klankar ned på Arduino, som ju är ett mjukvarubibliotek för embedded C++. D.v.s långt närmare den typ av programmering du önskat utföra sedan du började skriva på forumet, än vad Matlab/Octave är.

Det du skriver om gällande sjukhusutrustningen låter fullständigt rimligt, och är ju resultatet av att högskolarna sällan ger någon stadig programmeringsgrund att stå på om inte eleven har programmering som fritidsintresse.
DanielM
Inlägg: 2434
Blev medlem: 5 september 2019, 14:19:58

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av DanielM »

Det är inget fel på Arduino som mjukvara. Den gör som det är skrivet. Det jag beklagar över är själva kulturen hos utvecklingsmiljön samt att Arduino är ingen hårdvarutillverkare som ST och Microchip är.

Jag får känslan att många som använder Arduino kör även Python.

Högskolorna ger en bra grund. Men deras sätt att lära ut är något obsolet. Du hittar betydligt bättre kurser på Udemy om det rör sig om programmering.
bearing
Inlägg: 11674
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av bearing »

Jag pratar om högskolor generellt här. Elever som inte har eget intresse för programmering kan inte koda för fem öre när de tagit examen. Dom kan göra modeller i simulink och lite enkel strukturlös i kod matlab eller andra språk som de gått någon kort kurs i. Undantaget de speciella högskoleprogrammen som går ut på att bli systemvetare/programmerare, såklart.

Hur menar du att en utvecklingsmiljö har en "kultur"?
Du måste mena något annat. Antar att du syftar på det "community" som programmerar Arduinos.
DanielM
Inlägg: 2434
Blev medlem: 5 september 2019, 14:19:58

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av DanielM »

Den åsikten delar jag. Men skolans uppgift är inte att lära ut konkurrenskraftig kunskap. Skolans uppgift är att filtrera. Detta märks tydligt om man har jobbat några år på "golvet", sedan studerat så man får sitta på "kontoret". Så vill man hitta konkurenskraftig kunskap så är diverse forum, Google och YouTube dom bästa källorna.

Arduino är uppbyggt med panik och stress. Folk som använder detta på t.ex hem eller jobb gör det för att man behöver spendera minimalt med tid. Det finns ingen tid att lära sig mer avancerade plattformar. Så koden blir oftast dåligt skriver och dess bibliotek är horribla. Samma sak gäller för Python.

Python är ett utmärkt språk. Rent och snyggt. Men språket drar med sig folk som vill lösa problemet så snabbt som möjligt och de bryr sig sällan om kvalitén på koden. Så länge det "funka" så är dom nöjd. Detta har med att språket är uppbyggt för att locka folk som söker snabba lösningar.

Jämför ett projekt skrivet i C/Java/C#/C++ jämfört med Python/MATLAB/Visual Basic.NET så märker man helt klart att de "tråkiga språken" som tar massa tid att skriva, blir generellt bättre än språk där man får möjligheten att bara "kasta ihop" något på en kort tid.

Att "kasta ihop" något i C är i praktiken helt omöjligt. Språket har inget stöd för sådant "lyx". Lika väl för C#/C++/Java. Här får man börja från grunden eller använda stora tunga bibliotek t.ex Spring Boot för att få det lite lättare. Men detta kräver förkunskaper. Jag rekommenderar starkt Spring Boot om man ska göra något som har med databas eller webb. Ni sparar tid och skriver mindre kod.


Samma sak gäller alla dessa feta bibliotek för machine/deep learning. Dom är byggt för att man ska bara kasta ihop något på 5 minuter utan att riktigt förstå om det är en optimal lösning eller inte. Det fungerar säkert, men det blir inte konkurrenskraftigt då någon annan kan göra det bättre.

Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
hummel
Inlägg: 2536
Blev medlem: 28 november 2009, 10:40:52
Ort: Stockholm

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av hummel »

DanielM skrev:Det är inget fel på Arduino som mjukvara. Den gör som det är skrivet. Det jag beklagar över är själva kulturen hos utvecklingsmiljön samt att Arduino är ingen hårdvarutillverkare som ST och Microchip är.

Jag får känslan att många som använder Arduino kör även Python.

Högskolorna ger en bra grund. Men deras sätt att lära ut är något obsolet. Du hittar betydligt bättre kurser på Udemy om det rör sig om programmering.
Vad menar du med "kulturen hos utvecklingsmiljön"?
Arduino tillverkar hårdvara men köper en del kretsar från bla Microchip.
Du kan använda Microchips utvecklingsmiljö om du vill.
Användarvisningsbild
AndLi
Inlägg: 18251
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av AndLi »

Jag skulle ju hävda att det är än enklare att skriva fulkod i C, i alla de där moderna språken har du ju tex en garbage hanterare som tar hand om allt minne du bara dumpar efter dig.. I C blir det ju bara kvar tills du kört slut på alla resurser..

Och eftersom allt tar längre tid i C, struntar man helt enkelt i att göra rätt i fulhacken utan man supportar bara happy track, saker som sannolikt hade hanterats i högnivåspråk automagiskt...

Och det är ju inga problem att slänga in ett databas lib och använda från C, jag har flera fin fina c-hack som pratar med en mysql-databas..
Eller nyttja openSSL för att köra lite TLS uppkopplingar..

Men vad vet jag om C, det har ju bara varit mitt levebröd i 25 år eller nått...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46930
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av TomasL »

Att "kasta ihop" något i C är i praktiken helt omöjligt.
Det är skitenkelt att skriva skräp i C, betydligt svårare i de mer styrda språken som C#.

I C är i princip allt tillåtet, så det gäller att hålla tungan rätt i munnen.

Till exempel

if (a==b)

eller

if (a=b)

Båda är fullständigt tillåtna i C.
De ger dock ger helt olika resultat.
DanielM, kan du gissa vad skillnaden är, och förklara vad som faktiskt händer.
DanielM
Inlägg: 2434
Blev medlem: 5 september 2019, 14:19:58

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av DanielM »

hummel skrev:
DanielM skrev:Det är inget fel på Arduino som mjukvara. Den gör som det är skrivet. Det jag beklagar över är själva kulturen hos utvecklingsmiljön samt att Arduino är ingen hårdvarutillverkare som ST och Microchip är.

Jag får känslan att många som använder Arduino kör även Python.

Högskolorna ger en bra grund. Men deras sätt att lära ut är något obsolet. Du hittar betydligt bättre kurser på Udemy om det rör sig om programmering.
Vad menar du med "kulturen hos utvecklingsmiljön"?
Arduino tillverkar hårdvara men köper en del kretsar från bla Microchip.
Du kan använda Microchips utvecklingsmiljö om du vill.
Jag har redan förklarat miljön.
TomasL skrev:
Att "kasta ihop" något i C är i praktiken helt omöjligt.
Det är skitenkelt att skriva skräp i C, betydligt svårare i de mer styrda språken som C#.

I C är i princip allt tillåtet, så det gäller att hålla tungan rätt i munnen.

Till exempel

if (a==b)

eller

if (a=b)

Båda är fullständigt tillåtna i C.
De ger dock ger helt olika resultat.
DanielM, kan du gissa vad skillnaden är, och förklara vad som faktiskt händer.
Ja ena tilldelar b till a och andra jämför a med b.

Enkelt och enkelt. Det är svårt att skriva MySQL kopia i C med dålig kod. Du får liksom inte det att fungera och bli värt att driva vidare projektet.

Jag skriver alla mina algoritmer i C. Mest bara för att det är så otroligt snabbt.
AndLi skrev:Jag skulle ju hävda att det är än enklare att skriva fulkod i C, i alla de där moderna språken har du ju tex en garbage hanterare som tar hand om allt minne du bara dumpar efter dig.. I C blir det ju bara kvar tills du kört slut på alla resurser..

Och eftersom allt tar längre tid i C, struntar man helt enkelt i att göra rätt i fulhacken utan man supportar bara happy track, saker som sannolikt hade hanterats i högnivåspråk automagiskt...

Och det är ju inga problem att slänga in ett databas lib och använda från C, jag har flera fin fina c-hack som pratar med en mysql-databas..
Eller nyttja openSSL för att köra lite TLS uppkopplingar..

Men vad vet jag om C, det har ju bara varit mitt levebröd i 25 år eller nått...
Själv allokera jag aldrig minnet. Jag använder inte malloc, calloc eller recalloc. Jag använder det minne som behövs i värsta tillfälle.

Efter som att det tar längre tid så beror det på att man skriver optimal kod som är igenomtänkt. Vill man fula med kod så går man över till skriptspråk t.ex MATLAB eller Python.

Jag fular alltid i MATLAB. Projekten sparar jag inte. Bara resultatet.
Senast redigerad av DanielM 3 mars 2020, 23:17:47, redigerad totalt 1 gång.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46930
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av TomasL »

Ja ena tilldelar b till a och andra jämför a med b.
Och vad händer i den andra IF-satsen?
DanielM
Inlägg: 2434
Blev medlem: 5 september 2019, 14:19:58

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av DanielM »

Det vet jag inte. Har inte kört sådan kod.

Ska vi inte prata om machine learning och dess applikationer?

Vad finns för behov förutom bildigenkänning?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46930
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av TomasL »

Du kanske borde lära dig, eftersom det är i den särklass vanligaste logiska buggen i C-kod.
Dessutom oerhört svårhittad, eftersom det är en, ur C helt accepterad kodrad, vilket innebär att du inte får några varningar från kompilatorn.
Dock blir resultatet emellanåt, inte alltid dock, käpprätt åt helsike
DanielM
Inlägg: 2434
Blev medlem: 5 september 2019, 14:19:58

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av DanielM »

Okej då vet jag. :)
Något som jag är behov utav är att kolla om jag överindexerar arrayer. Jag har testat och profilera med Valgrind och den har inte gett mig några felmeddelanden. Antar att allt är OK då?

Annars då. Vad finns det för behov när det kommer till machine learning.

Jag har skrivit ett SVD program som hanterar Singular Value Decomposition med hjälp utav Gloub och Reins metod. Då kan man hantera många datarader.

SVD är något som du borde lära dig. Där var vi nyttiga saker.

Vad kan man göra med SVD?
1. Bildigenkänning. Neurala nätverk är bättre, men svårare att träna för att få det bra + flera tusen rader av data. Vissa nätverk kräver över 500 tusen bilder för att det ska bli bra.

2. Modellbygge. Vill man estimera överföringsfunktioner eller tillståndsmodeller då är SVD riktig bra. Neurala nätverk är deltid bättre, men dom är alltid svårare att få dom bra också. Kräver bättre data också för att nämna.

3. Lösning av linjära system. Pseudo-invers är ju ett klassiskt problem. Om du har 10 ekvationer och 3 okända så kan du lösa problemet.

4. Klassificering. Vill man få ut sin reklam igenom att klassa in viss typ av reklam för vissa användare då är SVD perfekt och används idag på Netflix.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46930
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av TomasL »

Snälla nån, du har fortfarande inte en aning om vad du håller på med.

vad händer i den andra "if"en?
DanielM
Inlägg: 2434
Blev medlem: 5 september 2019, 14:19:58

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av DanielM »

Men är inte detta lite logiskt? Jag har aldrig kommit i kontakt med detta då min IDE varnar för detta. Men här är min teori.

Men vi säger att if(x = 1) så borde funktionen köras då det är ett positivt tal.

För övrigt så är det mer intressant om maskinellt lärande än att pladdra på om "if". :roll:
Användarvisningsbild
ecenier
Inlägg: 1149
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Maskinellt lärande i inbyggda system - Vem är på?

Inlägg av ecenier »

TomasL skrev:Snälla nån, du har fortfarande inte en aning om vad du håller på med.

vad händer i den andra "if"en?
Slappna av TomasL. Är detta verkligen något att hänga upp sig på? Ignorera tråden om du inte kan hjälpa TS framåt. Varför inte skapa en egen tråd med tips om typiska fel man gör i C? Tror kanske att det redan finns. Fyll på där i så fall.
Skriv svar