Maskinellt lärande i inbyggda system - Vem är på?
Re: Maskinellt lärande i inbyggda system - Vem är på?
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.
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.
Re: Maskinellt lärande i inbyggda system - Vem är på?
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.
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.
Re: Maskinellt lärande i inbyggda system - Vem är på?
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.
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.
Re: Maskinellt lärande i inbyggda system - Vem är på?
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.
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.
Re: Maskinellt lärande i inbyggda system - Vem är på?
Vad menar du med "kulturen hos utvecklingsmiljön"?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.
Arduino tillverkar hårdvara men köper en del kretsar från bla Microchip.
Du kan använda Microchips utvecklingsmiljö om du vill.
Re: Maskinellt lärande i inbyggda system - Vem är på?
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...
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...
Re: Maskinellt lärande i inbyggda system - Vem är på?
Det är skitenkelt att skriva skräp i C, betydligt svårare i de mer styrda språken som C#.Att "kasta ihop" något i C är i praktiken helt omöjligt.
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.
Re: Maskinellt lärande i inbyggda system - Vem är på?
Jag har redan förklarat miljön.hummel skrev:Vad menar du med "kulturen hos utvecklingsmiljön"?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.
Arduino tillverkar hårdvara men köper en del kretsar från bla Microchip.
Du kan använda Microchips utvecklingsmiljö om du vill.
Ja ena tilldelar b till a och andra jämför a med b.TomasL skrev:Det är skitenkelt att skriva skräp i C, betydligt svårare i de mer styrda språken som C#.Att "kasta ihop" något i C är i praktiken helt omöjligt.
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.
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.
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.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...
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.
Re: Maskinellt lärande i inbyggda system - Vem är på?
Och vad händer i den andra IF-satsen?Ja ena tilldelar b till a och andra jämför a med b.
Re: Maskinellt lärande i inbyggda system - Vem är på?
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?
Ska vi inte prata om machine learning och dess applikationer?
Vad finns för behov förutom bildigenkänning?
Re: Maskinellt lärande i inbyggda system - Vem är på?
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
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
Re: Maskinellt lärande i inbyggda system - Vem är på?
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.

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.
Re: Maskinellt lärande i inbyggda system - Vem är på?
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?
vad händer i den andra "if"en?
Re: Maskinellt lärande i inbyggda system - Vem är på?
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".
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".

Re: Maskinellt lärande i inbyggda system - Vem är på?
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.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?