Przeszukaj forum
Pokazywanie wyników dla tagów 'ai'.
Znaleziono 7 wyników
-
Witam. Już od bardzo długiego czasu (jeszcze zanim był chat gpt) próbuję stworzyć sieć neuronową w pythonie. Bardzo dużo się w tym temacie nauczyłem przez ten czas, jednak nie na tyle dużo by stworzyć własną sieć neuronową która wykonywałaby jakieś zaprojektowane przeze mnie zadanie. Próbowałem bibliotek: pytorch, tensorflow, keras, scikit-learn, stable baselines, gymnasium, a nawet pisania sieci od podstaw bez żadnej z tych bibliotek, ale dotychczas moje największe osiągnięcie to napisanie kodu (z tutoriala) który pracuje z environmentami z gymnasium, ale nie całkiem go rozumiałem i nie mogłem go dostosować do swoich zastosowań. Jeśli jest ktoś kto orientuje się w temacie i byłby skłonny podzielić się wiedzą byłbym niezmiernie wdzięczny za wskazówki. Pozdrawiam.
-
trochę się bawię w programowanie symulacji 2 wymiarowego świata z 2 wymiarowymi istotami, które same uczą się i dostosowują do zmian, nie są uczone na dużych zbiorach danych a jedynie na zasadzie własnych prób i błędów. Taki rodzaj uczenia maszyn określa się jako nienadzorowany (unsupervised machine learning). Symulacja nie jest efektowna graficznie (nie o to chodziło) ale jak się wpatrzeć to widać jak bez niczyjej pomocy uczą się zasad świata i interakcji z innymi stworzeniami (atak, ucieczka, nieatakowanie swojego gatunku), szukanie pożywienia. Aktualnie przepisuję całość w Pythona na Rust więc projekt trochę w zawieszeniu, ale docelowo myślę o tym jako o alternatywnym uczeniu robotów. Zaletą jest to że nie bazujemy na karmieniu sieci neuronowej gigantycznym zbiorem danych - czyli nie trzeba "mistrza", uczeń uczy się na zasadzie prób i błędów. Poza tym jest bardzo elastyczny, na starcie nie wie nawet jakie prawa rządzą światem. Nie wie że trzeba jeść i unikać zjedzenia. W dodatku jest bardzo elastyczny, można diametralnie zmienić zasady rządzące światem i z biegiem czasu gatunki się dostosują. Ostatnio dodałem receptor który rozróżnia czy inny stworek należy do tego samego gatunku. Okazało się że niektóre gatunki wykształciły zachowanie polegające na odstępowaniu od ataku swoich! szare poligony - skały, przeszkody zielone okręgi - rośliny czerwone okręgi - mięso niebieskie stworki z zielonym środkiem - roślinożercy niebieskie stworki z czerwonym środkiem - mięsożercy po lewej na dole wizualizacja działania sieci neuronowej wybranej istoty Zostawiam link dla zainteresowanych:
-
- 7
-
- neuroewolucja
- alg. genetyczny
- (i 3 więcej)
-
Mit o naszym poznawczym uniwersalizmie, o naszej gotowości odebrania i zrozumienia informacji całkowicie, przez jej pozaziemskość, nowej - trwa niewzruszony, chociaż, otrzymawszy posłanie z gwiazd, zrobiliśmy z nim nie więcej, niżby zrobił dzikus, który, ogrzawszy się u płomienia podpalonych dzieł najmędrszych, uważa, że doskonale owe znalezisko wykorzystał! - Stanisław Lem Głos Pana Tymi słowami Stanisław Lem konkludował próbę odszyfrowania przez Człowieka tajemniczego sygnału z kosmosu, którego odkrycie było dziełem przypadku. Sygnał, pochodzący najprawdopodobniej od obcej cywilizacji z krańca Kosmosu stał się zagadką, poddającą w wątpliwość ludzką poznawczość. Pomimo licznych prób i wzajemnej współpracy grona naukowców, wiadomość udało się rozpracować tylko częściowo, a nawet uzyskany wynik stanowił dalsze ogniwo niezrozumienia i zdumienia. Chcąc opowiedzieć czym był sygnał, jak został odkryty i do jakich odkryć poprowadził grupę uczonych należy sięgnąć do książki Stanisława Lema „Głos Pana”. Ten wpis brał udział konkursie na najlepszy artykuł o elektronice lub programowaniu. Sprawdź wyniki oraz listę wszystkich prac » Partnerem tej edycji konkursu (marzec 2020) był popularny producent obwodów drukowanych, firma PCBWay. Dlaczego przytoczone zostały właśnie te słowa i w jaki sposób korespondują one z tematem artykułu? Jeżeli miałeś nadzieję, że przedstawione zostaną kulisy pierwszego kontaktu z obcą cywilizacją, to niestety możesz się lekko rozczarować, ale ta era (jeszcze) nie nadeszła - jakkolwiek byśmy tego nie chcieli i próbowali zaklinać czasoprzestrzeń. Pozwólmy, rzucić sobie światło na niemniej, a nawet równie ciekawą materię. Komunikacja Powracając do powieści Stanisława Lema, komunikacja, choć jednostronna przebiega tam zdalnie. Z otchłani kosmosu dobiega sygnał w postaci ciągu neutrin – cząstek nie posiadających masy, zdolnych do przenikania materii. Cząstki te nadawane są w pewnych odstępach czasowych. Uważnie przyglądając się całości emisji dostrzec można, pewne zależności powodujące, że w procesie widoczna jest pewna wiadomość. Komunikatu zostaje zapętlony, a zarówno nadawca jak i odbiorca kosmicznego komunikatu nie widzą się wzajemnie. Są przekonani o wzajemnym istnieniu, ale fizycznie, poza komunikatem nie mają ze sobą jakiegokolwiek innego kontaktu. Czy cała idea tego procesu nie wygląda w pewien sposób znajomo? Tak, to Test Turinga! Obca cywilizacja przesyłając komunikat zainicjowała proces Testu Turinga, w oczekiwaniu na sprzężenie zwrotne, które miało udowodnić naszą inteligencję. Barierą oddzielającą „komputer” od człowieka jest ogromna przestrzeń kosmiczna, a sam sygnał przyjmuje nieco inną formę, niż tą jaką przewidział w swoich założeniach Alan Turing. Niestety, cały mistycyzm pierwszego kontaktu sprowadzony zostaje do trochę bardziej prozaicznego, wcześniej znanego pojęcia. Ale czy spoglądanie w niebo to jedyny sposób na nawiązanie dialogu z przyszłością? Schodzimy na ziemię Dialog już trwa, rozmówcą jesteś również Ty, ale to Alan Turing jako jeden z pierwszych dostrzegł możliwość rozmowy Człowieka z maszyną. Tak, sztuczna inteligencja, bo o niej mowa, choć nieco bardziej ziemska posiada kosmiczne możliwości. To sztuczna inteligencja ma nasze dane, potrafi nimi skutecznie manipulować, gromadzić i na podstawie ich podejmować poważne decyzje. Prowadzi nasze auta, wynajduje nowe lekarstwa, decyduje czy będziesz wiarygodnym kredytobiorcą, a nawet bywa „zwyczajnym rozmówcą”. Komunikacja z SI przybiera różne formy, choć dysponujemy szeregiem języków programowania, gotowymi rozwiązaniami informatycznymi, a sama wiedza jest niemalże powszechnie dostępna to właśnie komunikacja stanowi najważniejsze zagadnienie rozwoju sztucznej inteligencji. O ile, gdy stworzone przez nas oprogramowanie zawarte w ryzach algorytmów jest nam niemal całkowicie posłuszne, o tyle sztuczna inteligencja w swojej idei zaczyna „żyć własnym życiem” – życiem tak autonomicznym, że język cyfrowy schodzi momentami na drugi plan, a nawet może nie być samodzielnie wystarczający. Oczywiście nic nie wskazuje na to, abyśmy mieli w całości zrezygnować z języków programowania na rzecz… no właśnie czego? Rozmowy? Siri, Asystent Google czy Alexa to systemy bazujące na sztucznej inteligencji, które uprzednio zaprogramowane dalszą część cybernetycznego życia spędzają komunikując się poprzez komunikację werbalną. Całość procesu: gromadzenie danych, przetwarzanie czy wydawane przez nią komunikaty to głównie wiadomości głosowe. Jest to oczywiste i zrozumiałe, ale pod postacią wygodnej dla nas funkcjonalności rozpoznawania głosowego oraz syntezatora mowy, ukryty pozostaje znaczący krok w rozwoju komunikacji na linii człowiek – maszyna. W sposób nowoczesny, komfortowy, ale jednocześnie pionierski przeszliśmy z zerojedynkowej narracji do „języka człowieka”. Choć nie zawsze precyzyjnie i składnie, to rzeczywiście – maszyna rozmawia z człowiekiem. Wygląda to jak pierwszy krok w drodze do tego czym zwykliśmy nazywać świadomością. Doskonale operuje liczbami, w przeciągu ułamka sekundy zna odpowiedzi na liczbowe problemy, tworzy skomplikowane modele cyfrowe, wszystko co deterministyczne i natury arytmetycznej jest w jej zasięgu. Ma natomiast problem z pojęciami, które ironicznie, człowiekowi przychodzą nieco łatwiej – pojęciami abstrakcyjnymi. Czy w milionach tranzystorów może popłynąć rewolucyjna idea, zupełnie abstrakcyjna myśl, zakodowana jako „kilka zer i jedynek” ? Wszystkie wyniki pracy systemów sztucznej inteligencji, a w konsekwencji jej osiągnięcia bazują na dużych ilościach danych którymi jest „karmiona” i kolejno trenowana. Choć ten ciąg przyczynowo-skutkowy wydaje się pozostawać niewzruszony to ludzki umysł, również wiedziony ogromną ilością danych, popularniej zwanych bagażem doświadczeń potrafi myśleć w sposób abstrakcyjny, definiować swój byt i być samoświadomy. Czy samoświadomość sztucznej inteligencji to kwestia większej ilości danych i nowych połączeń sieci neuronowej? Jeżeli tak, to hipotetycznie moglibyśmy wskazać konkretny punkt, w którym owa sieć osiąga świadomość. Czy jest to wykonalne - jest nam ciężko określić, chociaż sam temat świadomości cyfrowej stanowi nie tylko obiekt: badań specjalistów, westchnień futurologów, ale także.. Rozważań filozofów Czy prekursorzy inżynierii elektronicznej tworząc pierwsze układy scalone, mogli doszukiwać się głębszego metafizycznego sensu w sygnałach? Jest to wątpliwie, jednak przyszłość przygotowała własną wizję - mariaż teorii informacji z humanizmem. Dwie dziedziny należące do przeciwległych biegunów nauki, połączyła potrzeba współpracy na rzecz ustalenia wspólnych mianowników etycznych dla człowieka i maszyny. Choć z pozoru nierealna wizja potrzeby dzielenia się wykuwaną przez lata ludzką moralnością, z pieśni przyszłości staje się prozą współczesności. Autonomiczne auta wyposażane są w systemy decyzyjne, których zadaniem jest podjęcie odpowiedniego wyboru w sytuacji zagrożenia życia. Ale czy faktycznie potrafimy zdefiniować odpowiedni wybór? Czy nie jest tak, że już na przestrzeni dialogu międzyludzkiego napotykamy problem z jasnym zdefiniowaniem systemu norm, który byłby spójny? Subiektywność, rozumiana bliżej jako doświadczenia życiowe i system wyznawanych przez nas wartości powodują dywersyfikację wersji algorytmu prawidłowego działania. Czy w niemożliwym do uniknięcia przypadku potrącenia pieszego system postanowi potrącić dziecko czy osobę starszą, osobę schorowaną czy kobietę w ciąży? Odpowiedź nie jest prosta, o ile w ogóle takowa istnieje. Wizja Elon Musk – właściciel firmy Tesla, produkującej innowacyjne samochody elektryczne do projektowania systemów autonomicznej jazdy wśród specjalistów z dziedzin IoT, Data Science, programistów systemów embedded rekrutuje osoby odpowiedzialne za moralne uposażenie systemów decyzyjnych – ekspertów z dziedziny filozofii. To oni są odpowiedzialni za wszystkie potencjalne dylematy natury moralnej. Zatrudnienie filozofów, ale również humanistów ogólnie w sektorze AI (Artificial intelligence – ang. Sztuczna Inteligencja) będzie niewątpliwie rosło. Urzeczywistnia się coś, o czym wcześniej nawet nie myśleliśmy – cykl technologiczny zatacza koło, a my uczłowieczamy technologię. Nie chodzi tu o podniosłe zwroty i patetyczne doszukiwanie się archetypu stwórcy w programiście – technologia brnie do przodu, a wraz z nią rola nas – jej głównych odbiorców i współrozmówców ulega ewolucji.
- 51 odpowiedzi
-
- 5
-
Cześć, napotkałem dziś dziwny problem. Po dodaniu do projektu STM32H743IIT6 pakietu X-CUBE-AI przestała działać komunikacja USART. Mam na PCB wyprowadzone USART2 oraz USART3 i żaden z nich nie działa. Zdaje się, że pozostała część programu działa, ale dokładnie tego nie sprawdzałem, jedynie miganie diod. Sprawdzałem wersje 7.3 oaz 8.0 pakietu AI. Najdziwniejsze jest to, że już samo zaznaczenie Core w Select Components (STM32CubeIDE) powoduje problemy. Późniejsze odznaczenie tego nie przywraca działania. Problem nie tkwi w pliku main.c. Przywrócenie pliku sprzed zmian nic nie daje. Komunikacja po USART realizowana jest poprzez programator z Nucleo F1. Wcześniej korzystałem z pakietu AI razem z USART na rdzeniu F7 i nie było problemów. Czy macie jakieś pomysły, gdzie szukać problemu?
-
Wstęp Tematyka uczenia maszynowego, sieci neuronowych oraz sztucznej inteligencji jest w ostatnich latach bardzo popularna nie tylko w środowisku naukowym, ale również wśród programistów i elektroników amatorów. Często jednak zdarza się, że znamy te zagadnienia z praktyki i umiemy je wykorzystywać przy pomocy popularnych bibliotek takich jak Keras, jednak nie wiemy co dzieje się na niższym poziomie. W artykule tym postaramy się jednak to zmienić. Naszym celem będzie zrozumienie podstaw teoretycznych i poznanie działania sztucznej inteligencji od pojedynczego neuronu, przez proces uczenia, aż do gotowej i wyuczonej sieci. Ten artykuł bierze udział w naszym konkursie! 🔥 Na zwycięzców czekają karty podarunkowe Allegro, m.in.: 2000 zł, 1000 zł i 500 zł. Potrafisz napisać podobny poradnik? Opublikuj go na forum i zgłoś się do konkursu! Czekamy na ciekawe teksty związane z elektroniką i programowaniem. Sprawdź szczegóły » Pojedynczy neuron Sztuczne sieci neuronowe składają się z węzłów (pojedynczych neuronów), warstw tworzonych przez węzły oraz połączeń między węzłami. Pojedynczy węzeł składa się z funkcji wejściowej, funkcji aktywacji oraz wyjścia. Połączenia między węzłami natomiast posiadają przypisane im wagi, przez które przemnażany jest sygnał przez nie płynący. Wyróżniamy również trzy warstwy węzłów: wejściową, ukrytą oraz wyjściową. Matematyczny model węzła, czyli pojedynczego sztucznego neuronu pokazano poniżej. Na początek skupmy się jednak na działaniu pojedynczego neuronu. Posiada on dowolną liczbę wejść oraz jedno wyjście. Wejściami mogą być, w zależności od warstwy w jakiej znajduje się nasz neuron, dane wejściowe lub wyjścia innego neuronu. Na rysunku mamy sześć sygnałów wejściowych opisanych x0-x5. Z reguły sygnały te powinny przyjmować wartości od 0 do 1 i następnie być przemnożone przez odpowiadające im wagi θ0-θ5. Wielkość tych wag jest dowolna (mogą być dodatnie oraz ujemne) i jest uzależniona od tego jak istotne dla działania naszej sieci jest dane połączenie. Podczas procesu uczenia sieci to właśnie te wagi ulegają zmianie tak by efekt działania sieci był jak najtrafniejszy. Wszystkie przemnożone przez swoje wagi wejścia są w kolejnym kroku sumowane i podawane jako wejście (czyli argument) funkcji aktywacji. Funkcja aktywacji jest niezwykle istotna. Z reguły wykorzystuje się tu funkcję sigmoidalną. Jej wykres przedstawiono na rysunku poniżej. Funkcja ta na podstawie swojego argumentu przyjmuje wartości z zakresu od 0 do 1. Zazwyczaj przyjmuje ona jednak tylko swoje skrajne wartości. Dlaczego więc stosujemy funkcję sigmoidalną zamiast zwykłego określania, że dla ujemnych argumentów funkcja aktywacji przyjmuje wartość 0, a dla dodatnich 1? Otóż funkcja ta jest w prosty sposób różniczkowalna1 co ma znaczący wpływ w procesie uczenia całej sieci, znacznie ułatwiając potrzebne obliczenia. Nie będziemy jednak tego tu dokładniej omawiać, temat doboru funkcji aktywacji mogłyby posłużyć na osobny artykuł. Wracając do działania neuronu wystarczy dodać, że wyjście funkcji aktywacji jest zarazem wyjściem całego węzła. Mówimy więc, że neuron jest w stanie spoczynku, gdy wartość funkcji aktywacji jest równa 0, lub w stanie pobudzenia gdy jest równa 1. W skrócie: Neuron jest w stanie spoczynku lub pobudzenia w zależności od wartości zsumowanych wejść tego neuronu pomnożonych przez przypisane im wagi. Od neuronu do sieci Mamy już pojedynczy neuron i wiemy jak on działa, ale co dalej? Teraz stworzymy całą sieć. W tym celu wyjścia jednego neuronu połączymy z wejściami innych. Warto jednak pamiętać, że część neuronów jako wejścia będzie posiadać dane wejściowe na podstawie których nasza sieć będzie wyliczać swoje wyjście. Neurony te stanowią warstwę wejściową. Z drugiej strony część neuronów będzie posiadała wyjścia nie podłączone do innych neuronów, lecz stanowiące wyjście całej sieci. Neurony te tworzą więc warstwę wyjściową. Cała reszta, która może łączyć się ze sobą w dowolny sposób (zaprojektowany oczywiście przez projektanta) nazywana jest warstwą ukrytą. W warstwie tej z reguły jest najwięcej połączeń oraz węzłów i od niej w dużej mierze zależy prawidłowość działania całej sieci. Schemat bardzo prostej sieci pokazano poniżej. Podsumowanie Wiemy już z czego składa się cała sieć, aż do pojedynczych części pojedynczego neuronu. Wiemy, że sieć składa się z wielu połączeń i każde z nich ma swoją wagę. Pozostaje nam więc jedynie odpowiedzieć na pytanie na czym polega proces uczenia maszynowego? Otóż polega on tylko i wyłącznie na doborze najoptymalniejszych wag dla każdego połączenia. Jest to proces który wymaga nieprawdopodobnej liczby obliczeń nawet przy niewielkich sieciach, lecz raz “wyuczona” sieć już tak skomplikowanych obliczeń nie potrzebuje dla prawidłowego działania. Dlatego też proces uczenia często wymaga dużej mocy obliczeniowej i zajmuje niemało czasu, natomiast sama sieć potrafi działać szybko nawet na mniej wydajnym sprzęcie. Jeśli interesuje Was ten temat i chcielibyście, abym opisał cały proces projektowania i uczenia sieci, dajcie proszę znać w komentarzach. Na koniec chciałbym jeszcze przedstawić Wam cytat jednego z największych naukowców 2. połowy XX w.: "Gdy (AI) osiągnie IQ 100 czy 150, nie będzie problemu. Ale gdy 1000 albo 10000, to co wtedy? To może być największe osiągnięcie ludzkości. Ale zarazem jej koniec." Stephen Hawking Bibliografia i inspiracje: Brain-wiki contributors, https://brain.fuw.edu.pl/edu/index.php/Uczenie_maszynowe_i_sztuczne_sieci_neuronowe (data dostępu 10.04.2021 r.) Smith Steven W.: Cyfrowe przetwarzanie sygnałów, BTC,Warszawa 2007 https://www.youtube.com/watch?v=aircAruvnKk https://www.youtube.com/watch?v=437dvcP-09E 1-od tego momentu matematyczny bełkot wszedł na ten poziom, że zacząłeś przewijać dalej?
-
Witam 🙂 Od około półtora roku interesuję się sztuczną inteligencją, zwłaszcza zastosowaną w robotyce. Jest to dla mnie niezwykle ciekawy temat 🙂 Kilka miesięcy temu zacząłem pracować nad moim prywatnym projektem, który cały czas jest w fazie rozwoju. Pewne elementy, takie jak uczenie się poprzez rozmowę z człowiekiem są gotowe, więc postanowiłem nagrać poniższe filmy: AgeBot podłączony jest do internetu. Platforma to gotowa konstrukcja - AlphaBot-PI. Użyłem jej, aby szybciej skupić się na oprogramowaniu. W ostatnim czasie domykałem widoczne na filmach możliwości robota i w międzyczasie zacząłem pracę nad wykorzystaniem kamery (aktualny stan to ~30%). W bliskiej przyszłości platformę mam zamiar wymienić na coś bardziej zaawansowanego lub zbudować swoją, ponieważ ta zaczyna mnie powoli ograniczać (pod względem hardware'u). Jej specyfikacja dostępna jest w internecie (np. na stronie firmy Waveshare), więc nie będę kopiował 😉 Jak już zauważyliście - używam Raspberry PI. Oprogramowanie na malinkę napisałem w C++, pozostała część to C++ oraz Python. Systemem jest Raspbian. Do zautomatyzowania instalacji niektórych zależności w systemie (akurat w przypadku samej malinki) używam narzędzia Ansible, a o te krytyczne dla działania aplikacji dba manager pakietów (apt, buduję paczki .deb). Do przetwarzania tekstu użyłem biblioteki Tensorflow, natomiast w procesie uczenia się, robotowi asystuje wnioskowanie. Kamera i przetwarzanie obrazu otworzy wiele nowych drzwi, ułatwi również pracę przy kolejnej domenie - planowaniu zadań. Sam robot jest stosunkowo małą częścią projektu, ale o tym... w przyszłości 😉 Każdy feedback mile widziany 🙂 Pozdrawiam PS: W ciągu kilku dni napiszę posta z trochę bardziej szczegółowymi informacjami odnośnie przetwarzania tekstu - czatowania z robotem
- 27 odpowiedzi
-
- 5
-
- AI
- Raspberry Pi
-
(i 1 więcej)
Tagi:
-
Cześć. Robię projekt rozpoznawania jednego z kilku ruchów za pomocą akcelerometru, żyroskopu, STM32F467ZG i pakietu X-CUBE-AI. Opieram się na artykule @Elvis Sztuczna inteligencja na STM32, czyli przykład użycia X-CUBE-AI, ale mam kłopot z jego rozszerzeniem. Próbowałem różnych sposobów, ale nie mogę zrobić sieci, która zamiast wartości binarnej (ruch - brak ruchu) zwróci mi prawdopodobieństwa każdego z 6 wyjść (na razie chciałbym tyle różnych ruchów rozpoznawać). Mam książkę, którą poleca Elvis ("Deep Learning" autorstwa Chollet'a), ale brak doświadczenia z SSN, czy nawet językiem Python mocno mnie ogranicza. Chciałbym też, żeby zamiast jednego wejścia będącego prostą funkcją odczytów z czujników (suma kwadratów odczytów z akcelerometru), f = open('data1.csv','r') values = [] results = [] for line in f: fields = line.strip().split(',') if len(fields) == 4: x = float(fields[0]) y = float(fields[1]) z = float(fields[2]) values.append([math.sqrt(x**2 + y**2 + z**2)]) results.append(float(fields[3])) f.close() układ bezpośrednio korzystał ze wszystkich 6 (3ACC i 3 GYRO). Tutaj fragment kodu Elvisa z STM'a: void MX_X_CUBE_AI_Process(void) { /* USER CODE BEGIN 1 */ float nn_input[AI_FORBOT_AI_IN_1_SIZE]; float nn_output[AI_FORBOT_AI_OUT_1_SIZE]; aiRun(nn_input, nn_output); /* USER CODE END 1 */ } static uint32_t next_ms = 1000; static float nn_input[AI_FORBOT_AI_IN_1_SIZE]; float nn_output[AI_FORBOT_AI_OUT_1_SIZE]; while (HAL_GetTick() < next_ms) {} next_ms += READ_DELAY_MS; lsm6_value_t acc; acc = lsm6_read_acc(); for (int i = 0; i < AI_FORBOT_AI_IN_1_SIZE - 1; i++) nn_input[i] = nn_input[i + 1]; nn_input[AI_FORBOT_AI_IN_1_SIZE - 1] = sqrt(acc.x * acc.x + acc.y * acc.y + acc.z * acc.z); aiRun(nn_input, nn_output); if (nn_output[0] >= 0.5f) HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); else HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET); Pomożecie mi zmienić kod Python'a i STM'a, bym mógł go użyć do swoich potrzeb? Naprawdę długo szukałem sposobu i próbowałem wielu rozwiązań, ale albo nie działa mi sieć neuronowa, albo nie kompiluje się projekt w SW4STM32.