Vytvoření aplikace pro klasifikaci obrázků v reálném čase

Dokončeno

Mikrořadič, jako je Azure Sphere, je zařízení s omezenými prostředky. Model budete muset upravit tak, aby mohl běžel na mikrořadiči, což je v tomto případě Azure Sphere. Model musí mít velmi malou velikost a musí být předem natrénován a optimalizován pro vaše vstupní data.

Při trénování modelu získáte natrénované váhy a parametry pro model hlubokého učení. Abyste tento model hlubokého učení spustili v Azure Sphere, budete muset kvantovat váhy a parametry pro převádění 32bitových dat s plovoucí desetinnou čárkou na 8bitová nebo 16bitová data s pevnou desetinnou čárkou. Kvantování je klíčový krok pro nasazení modelu do Azure Sphere (na mikrořadiči). Kvantování pro hluboké učení je proces aproximace neurální sítě, která používá čísla s plovoucí desetinnou čárkou, na neurální síť čísel s malou bitovou šířkou. Tím se výrazně sníží požadavky na paměť a výpočetní náklady při používání neurálních sítí.

V tomto modulu pracujete s modelem klasifikace obrázků CIFAR10. Váš model je natrénován pomocí architektury Caffe. Váhy a parametry jsou kvantovány na 8bitová plovoucí data (celá čísla). Použijete kvantované váhy a parametry modelu CIFAR10 a přidáte je do svého ukázkového projektu. Do ukázkového projektu budete také muset přidat knihovnu CMSIS-NN, abyste mohli využívat možnosti mikrořadiče. CMSIS-NN je optimalizovaná pro sítě CNN.

Součásti v této lekci:

  • Úložiště pro klasifikaci ukázkových obrázků Od Microsoftu: Obsahuje ukázkovou aplikaci pro klasifikaci obrázků běžící v reálném čase v Azure Sphere.

  • CMSIS-NN: Softwarová knihovna, kolekce optimalizovaných funkcí neurální sítě pro mikrořadiče s jádrem Cortex-M. Je vyvinuta tak, aby maximalizovala výkon a minimalizovala využití paměti u neurálních sítí v jádrech procesorů Cortex-M. Umožňuje zavést neurální sítě a strojové učení do koncového uzlu aplikací IoT. Je k dispozici ve složce projektu.

    Má implementované oblíbené typy vrstev neurální sítě, jako jsou například konvoluce, konvoluce s oddělováním podle hloubky, plné připojení, cyklické dotazování a aktivace. Pomocí funkcí obsažených nástrojů je také možné vytvářet složitější moduly NN, například LSTM a GRU.

  • arm_nn_examplescifar10_weights.h: Kvantované váhy a předsudky. Je k dispozici ve složce projektu.

  • arm_nn_examplescifar10_parameter.h: Quantized bias, out shift values. Je k dispozici ve složce projektu.

Postup v této lekci:

  1. Naklonováním úložiště ukázky klasifikace obrázků od Microsoftu získáte kvantované váhy, parametr a knihovnu CMSIS-NN.
  2. Upravíte a aktualizujte zdrojový kód vaší nově vytvořené aplikace pro klasifikaci obrázků.

Na konci této lekce bude váš model nakonfigurovaný s požadovaným nastavením tak, abyste mohli aplikaci nasadit do mikrořadiče pro odvozování.