Popularny post Elvis Napisano Marzec 21, 2020 Popularny post Udostępnij Napisano Marzec 21, 2020 Algorytmy związane z szeroko pojętą sztuczną inteligencją (AI, Artificial Intelligence) są ostatnio bardzo popularnym tematem. Na ogół AI kojarzy się z ogromnym zapotrzebowaniem na moc obliczeniową, wykorzystaniem GPU (Graphics Processing Unit) oraz obliczeniami w chmurze. Okazuje się jednak, że sztuczna inteligencja znajduje również zastosowanie w świecie mikrokontrolerów. Powstał nawet termin na określenie takich zastosowań - Edge AI. O tym jak popularny jest temat AI świadczy chociażby pojawienie się sprzętowych akceleratorów przeznaczone dla urządzeń wbudowanych, tzw. TPU (Tensor Processing Unit), przykładowo Google Coral, albo Intel Neural Compute Stick. Dostępne są również mikrokontrolery z wbudowanym TPU, np. Kendryte K210 . Spis treści serii artykułów: Sztuczna inteligencja na STM32, czyli przykład użycia X-CUBE-AI cz.1 Sztuczna inteligencja na STM32, czyli przykład użycia X-CUBE-AI cz.2 Sztuczna inteligencja na STM32, czyli przykład użycia X-CUBE-AI cz.3 Firma STMicroelectronics, czyli producent popularnych również na naszym forum układów STM32 postanowiła dostarczyć produkt związany z AI. Na razie nie oferuje sprzętowej akceleracji, ale możemy za darmo pobrać pakiet oprogramowania o nazwie X-CUBE-AI, który pozwala na łatwe wykorzystanie możliwości jakie daje sztuczna inteligencja. UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.Przeczytaj całość »Poniżej znajdują się komentarze powiązane z tym wpisem. 7 Cytuj Link do komentarza Share on other sites More sharing options...
Zealota Marzec 22, 2020 Udostępnij Marzec 22, 2020 (edytowany) Zastanawia mnie jedno: "przygotować własną sieć neuronową" Gdzie niby jest ta sieć neuronowa, gdzie są te ""neurony". Pewnie to zwykły brak wiedzy u mnie lub pomieszanie pojęć. Zaglądając do wiki można wyczytać, że właściwie chodzi o "sztuczną sieć neuronową" - czemu pomijany jest przedrostek "sztuczną"? Takim tokiem to za parę lat te "kilka bramek" będzie się nazywało neuronami 🙂 Poza tym ciekawie poczytać o takich nowoczesnych zagadnieniach. Edytowano Marzec 22, 2020 przez Zealota Cytuj Link do komentarza Share on other sites More sharing options...
radek04 Marzec 23, 2020 Udostępnij Marzec 23, 2020 (edytowany) Mam kłopot z uruchomieniem kodu w JupyterLab: import math import numpy as np from keras import models from keras import layers from keras.utils import to_categorical Pojawia się błąd: Using TensorFlow backend. ERROR:root:Internal Python error in the inspect module. Below is the traceback from this internal error. ERROR:root:Internal Python error in the inspect module. Below is the traceback from this internal error. Czy to chodzi o wersje bibliotek? Jak w Anaconda zdowngradeować np. Tensorflow? Edit: Udało mi się wgrać wersję 1.13, 1.14, próbuję z innymi wersjami pozostałych bibliotek, ale to nie pomaga. Czy mógłbym prosić o dokładniejsze omówienie instalacji wszystkiego, co dotyczy Pythona, z zaznaczeniem wersji i innych szczegółów, które są potrzebne do zadziałania? Edytowano Marzec 23, 2020 przez radek04 Cytuj Link do komentarza Share on other sites More sharing options...
radek04 Marzec 23, 2020 Udostępnij Marzec 23, 2020 Udało mi się (chyba) rozwiązać problem. Jeśli wersje bibliotek nie współgrają ze sobą, zamiast from keras... należy pisać from tensorflow.keras... Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Harnas Marzec 23, 2020 Udostępnij Marzec 23, 2020 Z mojej strony mogę zaproponować takie usprawnienia: wczytywanie i obróbkę danych przez bibliotekę Pandas. Zdecydowanie wygodniejsze rozwiązanie niż filereader. Ewentualnie Pythonowy csvreader. do podziały na zbiór treningowy i testowy można użyć train_test_split z sklearn zdecydowanie zwiększyłbym ilość epok w trakcie uczenia. Spokojnie mogłoby być ich 100 albo i 500. Cytuj Link do komentarza Share on other sites More sharing options...
radek04 Marzec 24, 2020 Udostępnij Marzec 24, 2020 Harnas, podasz przykład, jak można użyć tych bibliotek? Cytuj Link do komentarza Share on other sites More sharing options...
Elvis Marzec 24, 2020 Autor tematu Udostępnij Marzec 24, 2020 (edytowany) @Harnas dziękuję za uwagi. Odczyt z plików, jak i samo przygotowanie danych jest oczywiście zrobione absolutnie nieprofesjonalnie. To co opisałem powstawało jako "dłubanina" metodą prób i błędów, a moim celem było uruchomienie przykładu z X-CUBE-AI, planowałem później wszystko zrobić od początku, ładniej, lepiej, i poprawniej oraz z ciekawszym czujnikiem (chciałem użyć czujnik gestów https://botland.com.pl/pl/czujniki-gestow/3065-apds-9960-czujnik-rgb-i-wykrywacz-gestow-33v-i2c-sparkfun-sen-12787.html). Plan był dobry, ale zabrakło czasu, więc opisałem po prostu to co udało mi się zrobić, za niedoskonałości bardzo przepraszam. Edytowano Marzec 24, 2020 przez Elvis Cytuj Link do komentarza Share on other sites More sharing options...
radek04 Marzec 25, 2020 Udostępnij Marzec 25, 2020 (edytowany) @Harnas, jak zmodyfikować kod w Pythonie, jeśli chcę wykorzystać wprost wszystkie 6 wejść (3 osie akcelerometru oraz 3 żyroskopu), a układ ma rozpoznawać 3 różne wzorce (i brak konkretnego wzorca jako 4. stan)? Edytowano Marzec 26, 2020 przez radek04 Cytuj Link do komentarza Share on other sites More sharing options...
radek04 Marzec 28, 2020 Udostępnij Marzec 28, 2020 @Elvis, a może Ty mógłbyś pomóc? Kupiłem książkę Deep Learning, ale mimo to, słabo mi idzie. Zadanie mam bliźniacze do Twojego, tylko tych kategorii więcej. Twój sposób wprowadzania danych wejściowy mi odpowiada, ale w książce podobnych nie znajduję. A może chociaż nakierujesz mnie, gdzie poszukać dobrego rozwiązania mojego problemu? Dlaczego u Ciebie batch_size=8? Cytuj Link do komentarza Share on other sites More sharing options...
artisan Maj 22, 2020 Udostępnij Maj 22, 2020 thank you so much for sharing your project . ı couldn't find anything about x-cube-ai except your project . do you have any github page , I really would like to take a look Cytuj Link do komentarza Share on other sites More sharing options...
Popularny post Treker (Damian Szymański) Sierpień 18, 2020 Popularny post Udostępnij Sierpień 18, 2020 Artykuł został przeniesiony na bloga, aby więcej osób mogło skorzystać z zawartej tu wiedzy 🙂 3 Cytuj Link do komentarza Share on other sites More sharing options...
damian49841 Listopad 22, 2020 Udostępnij Listopad 22, 2020 (edytowany) Na wstępie muszę podziękować za super artykuł! Mam też jedno pytanie, które nie daje mi spać. W pliku main.c mam główny program (konkretnie jest to regulator PI do silnika DC z nadrzędną regulacją prędkości i podrzędną prądu) i chcę wykorzystać sieć do neuroestymacji prędkości. Zebrałem dane pomiarowe, nauczyłem sieć estymować prędkość, zaimplementowałem ją w projekcie... ale nie potrafię jej wywołać. W pętli while jest funkcja MX_X_CUBE_AI_Process i przez nią mógłbym to zrobić jednak nie przyjmuje ona parametrów, które mam w pliku main.c (próba zmiany w pliku gdzie jest definiowana powodowało błędy przy kompilacji). Próbowałem też bezpośrednio dołączyć do main.c plik app_x-cube-ai.c w którym jest definiowana wspomniana funkcja ale efekt był podobny - błędy podczas kompilacji. Czy jest jakiś sposób na wywołanie funkcji aiRun() w głównym pliku? albo jak przekazać parametry ( pomiary ) z pliku main.c do funkcji MX_X_CUBE_AI_Process a "odpowiedź" sieci z powrotem do main? Z góry dzięki za odpowiedź i pozdrawiam. EDIT Bo dłuższej chwili "grzebania" w kodzie udało się podpiąć aiRun() w main.c. Gdyby ktoś miał podobny problem to trzeba: - odleźć plik (z rozszerzeniem *.c ) w którym jest definicja funkcji aiRun (w najnowszej wersji jest to ai_Run) - wrzucić odwołanie do niej w pliku nagłówkowym (ta sama nazwa ale z rozszerzeniem *.h) - usunąć znacznik static przy deklaracji funkcji w pliku *.c Na koniec można z pętli while usunąć wywołanie MX_X_CUBE_AI_Process. Edytowano Listopad 23, 2020 przez damian49841 1 Cytuj Link do komentarza Share on other sites More sharing options...
piotrdn Marzec 7, 2022 Udostępnij Marzec 7, 2022 Cześć, czy jest tutaj na forum ktoś kto miałby wiedzę i trochę doświadczenia z uruchomieniem sztucznej sieci neuronowej, której zadaniem nie jest jak w artykule wykrywanie pewnego wzorca jakim jest charakterystyczny ruch akcelerometru ale regulacja prędkości obrotowej silnika elektrycznego? Cytuj Link do komentarza Share on other sites More sharing options...
rafaljuziu Wrzesień 29, 2022 Udostępnij Wrzesień 29, 2022 Hej! Czy dałoby radę zrobić reupload filmów? Na YouTube są one już niestety niedostępne. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Wrzesień 30, 2022 Udostępnij Wrzesień 30, 2022 @rafaljuziu dzięki za sygnał - akurat te filmy nie były niestety na naszym kanale, ale zobaczę co da się zrobić 🙂 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!