Skocz do zawartości

Sztuczna inteligencja na STM32? Przykład użycia X-CUBE-AI


Elvis

Pomocna odpowiedź

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 przez Zealota
Link do komentarza
Share on other sites

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 przez radek04
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

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.
Link do komentarza
Share on other sites

(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 przez Elvis
Link do komentarza
Share on other sites

@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 przez radek04
Link do komentarza
Share on other sites

@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?

Link do komentarza
Share on other sites

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 przez damian49841
  • Lubię! 1
Link do komentarza
Share on other sites

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?

Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.