

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Edge-Geräte
<a name="neo-edge-devices"></a>

Amazon SageMaker Neo bietet Kompilierungsunterstützung für beliebte Frameworks für Machine Learning. Sie können Ihre mit Neo kompilierten Edge-Geräte wie den Raspberry Pi 3, Sitara von Texas Instruments, Jetson TX1 und mehr einsetzen. Eine vollständige Liste der unterstützten Frameworks und Edge-Geräte finden Sie unter [Unterstützte Frameworks, Geräte, Systeme und Architekturen](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge.html). 

Sie müssen Ihr Edge-Gerät so konfigurieren, dass es AWS Dienste nutzen kann. Eine Möglichkeit, dies zu tun, besteht darin, DLR und Boto3 auf Ihrem Gerät zu installieren. Zu diesem Zweck müssen Sie die Authentifizierungsdaten einrichten. Siehe [Boto3 AWS Konfiguration](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration) für weitere Informationen. Sobald Ihr Modell kompiliert und Ihr Edge-Gerät konfiguriert ist, können Sie das Modell von Amazon S3 auf Ihr Edge-Gerät herunterladen. Von dort aus können Sie die [Deep Learning Runtime (DLR)](https://neo-ai-dlr.readthedocs.io/en/latest/index.html) verwenden, um das kompilierte Modell zu lesen und Rückschlüsse zu ziehen. 

Für Erstbenutzer empfehlen wir, den Leitfaden [Erste Schritte](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-getting-started-edge.html) zu lesen. In diesem Handbuch erfahren Sie, wie Sie Ihre Anmeldeinformationen einrichten, ein Modell kompilieren, Ihr Modell auf einem Raspberry Pi 3 bereitstellen und Rückschlüsse auf Bilder ziehen. 

**Topics**
+ [

# Unterstützte Frameworks, Geräte, Systeme und Architekturen
](neo-supported-devices-edge.md)
+ [

# Bereitstellen von Modellen
](neo-deployment-edge.md)
+ [

# Einrichten von Neo auf Edge-Geräten
](neo-getting-started-edge.md)

# Unterstützte Frameworks, Geräte, Systeme und Architekturen
<a name="neo-supported-devices-edge"></a>

Amazon SageMaker Neo unterstützt gängige Frameworks, Edge-Geräte, Betriebssysteme und Chip-Architekturen für Machine Learning. Finden Sie heraus, ob Neo Ihr Framework, Ihr Edge-Gerät, Ihr Betriebssystem und Ihre Chip-Architektur unterstützt, indem Sie eines der folgenden Themen auswählen.

Eine Liste der Modelle, die vom Amazon SageMaker Neo Team getestet wurden, finden Sie im [Getestete Modelle](neo-supported-edge-tested-models.md) Abschnitt.

**Anmerkung**  
Für Ambarella-Geräte müssen zusätzliche Dateien in die komprimierte TAR-Datei aufgenommen werden, bevor sie zur Kompilierung gesendet wird. Weitere Informationen finden Sie unter [Beheben von Ambarella-Fehlern](neo-troubleshooting-target-devices-ambarella.md).
TIM-VX (libtim-vx.so) ist für i.MX 8M Plus erforderlich. Informationen zur Erstellung von [TIM-VX](https://github.com/VeriSilicon/TIM-VX) finden Sie im TIM-VX GitHub-Repository.

**Topics**
+ [

# Unterstützte Frameworks
](neo-supported-devices-edge-frameworks.md)
+ [

# Unterstützte Geräte, Chip-Architekturen und Systeme
](neo-supported-devices-edge-devices.md)
+ [

# Getestete Modelle
](neo-supported-edge-tested-models.md)

# Unterstützte Frameworks
<a name="neo-supported-devices-edge-frameworks"></a>

Amazon SageMaker Neo unterstützt die folgenden Frameworks. 


| Framework | Framework-Version | Modellversion | Modelle | Modellformate (in \$1.tar.gz verpackt) | Toolkits | 
| --- | --- | --- | --- | --- | --- | 
| MXNet | 1.8 | Unterstützt 1.8 oder höher | Bildklassifizierung, Objekterkennung, semantische Segmentierung, Posenschätzung, Aktivitätserkennung | MXNET: Neo erwartet eine einzelne Symboldatei (.json) und eine einzelne Parameterdatei (.params) | GluonCV v0.8.0 | 
| ONNX | 1,7 | Unterstützt 1.7 oder höher | Bildklassifizierung, SVM | Eine Modelldatei (.onnx) |  | 
| Keras | 2.2 | Unterstützt 2.2 oder höher | Bildklassifizierung | Eine Modelldefinitionsdatei (.h5) |  | 
| PyTorch | 1.7, 1.8 | Unterstützt 1.7, 1.8 oder früher | Bildklassifizierung, Objekterkennung | Eine Modelldefinitionsdatei (.pth) |  | 
| TensorFlow | 1.15, 2.4, 2.5 (nur für ml.inf1.\$1-Instances) | Unterstützt 1.15, 2.4, 2.5 (nur für ml.inf1.\$1-Instances) oder früher | Bildklassifizierung, Objekterkennung | \$1Für gespeicherte Modelle eine .pb- oder eine.pbtxt-Datei und ein Variablenverzeichnis, das Variablen enthält \$1Für eingefrorene Modelle nur eine .pb- oder .pbtxt-Datei |  | 
| TensorFlow-Lite | 1.15 | Unterstützt 1.15 oder früher | Bildklassifizierung, Objekterkennung | Eine Flatbuffer-Datei mit Modelldefinition (.tflite) |  | 
| XGBoost | 1.3 | Unterstützt 1.3 oder höher | Entscheidungsbäume | Eine XGBoost-Modelldatei (.model), in der die Anzahl der Knoten in einem Baum weniger als 2^31 beträgt |  | 
| DARKNET |  |  | Bildklassifizierung, Objekterkennung (das Yolo-Modell wird nicht unterstützt) | Eine Konfigurationsdatei (.cfg) und eine Gewichtungsdatei (.weights) |  | 

# Unterstützte Geräte, Chip-Architekturen und Systeme
<a name="neo-supported-devices-edge-devices"></a>

Amazon SageMaker Neo unterstützt die folgenden Geräte, Chiparchitekturen und Betriebssysteme.

## Geräte
<a name="neo-supported-edge-devices"></a>

Sie können ein Gerät mithilfe der Drop-down-Liste in der [Konsole von Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker) auswählen oder indem Sie `TargetDevice` in der Ausgabekonfiguration der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html) API angeben.

Sie können eines der folgenden Edge-Geräte auswählen: 


| Liste der Geräte | System auf einem Chip (SoC) | Betriebssystem | Architektur | Accelerator | Beispiel für Compiler-Optionen | 
| --- | --- | --- | --- | --- | --- | 
| aisage | Keine | Linux | ARM64 | Mali | Keine | 
| amba\$1cv2 | CV2 | Arch Linux | ARM64 | cvflow | Keine | 
| amba\$1cv22 | CV22 | Arch Linux | ARM64 | cvflow | Keine | 
| amba\$1cv25 | CV25 | Arch Linux | ARM64 | cvflow | Keine | 
| Coreml | Keine | iOS, macOS | Keine | Keine | \$1"class\$1labels": "imagenet\$1labels\$11000.txt"\$1 | 
| imx 8 qm | NXP imx8 | Linux | ARM64 | Keine | Keine | 
| imx 8m plus | i.MX 8M Plus | Linux | ARM64 | NPU | Keine | 
| jacinto\$1tda4vm | TDA4VM | Linux | ARM | TDA4VM | Keine | 
| Jetson Nano | Keine | Linux | ARM64 | NVIDIA | \$1'gpu-code': 'sm\$153', 'trt-ver': '5.0.6', 'cuda-ver': '10.0'\$1Für `TensorFlow2`, `{'JETPACK_VERSION': '4.6', 'gpu_code': 'sm_72'}` | 
| Jetson\$1TX1 | Keine | Linux | ARM64 | NVIDIA | \$1'gpu-code': 'sm\$153', 'trt-ver': '6.0.1', 'cuda-ver': '10.0'\$1 | 
| Jetson\$1TX2 | Keine | Linux | ARM64 | NVIDIA | \$1'gpu-code': 'sm\$162', 'trt-ver': '6.0.1', 'cuda-ver': '10.0'\$1 | 
| Jetson Xavier | Keine | Linux | ARM64 | NVIDIA | \$1'gpu-code': 'sm\$172', 'trt-ver': '5.1.6', 'cuda-ver': '10.0'\$1 | 
| qcs605 | Keine | Android | ARM64 | Mali | \$1'ANDROID\$1PLATFORM': 27\$1 | 
| qcs603 | Keine | Android | ARM64 | Mali | \$1'ANDROID\$1PLATFORM': 27\$1 | 
| Rasp3 B | ARM A56 | Linux | ARM\$1EABIHF | Keine | \$1'mattr': ['\$1neon']\$1 | 
| Rasp4b | ARM A72 | Keine | Keine | Keine | Keine | 
| rk3288 | Keine | Linux | ARM\$1EABIHF | Mali | Keine | 
| rk3399 | Keine | Linux | ARM64 | Mali | Keine | 
| sbe\$1c | Keine | Linux | x86\$164 | Keine | \$1'mcpu': 'core-avx2'\$1 | 
| sitara\$1am57x | BIN 57X | Linux | ARM64 | EVE und/oder C66x DSP | Keine | 
| x86\$1win32 | Keine | Windows 10 | X86\$132 | Keine | Keine | 
| x86\$1win64 | Keine | Windows 10 | X86\$132 | Keine | Keine | 

Weitere Informationen zu den JSON-Schlüsselwert-Compiler-Optionen für jedes Zielgerät finden Sie in dem `CompilerOptions` Feld im [API`OutputConfig`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html)-Datentyp.

## Systeme und Chip-Architekturen
<a name="neo-supported-edge-granular"></a>

Die folgenden Nachschlagetabellen enthalten Informationen zu verfügbaren Betriebssystemen und Architekturen für Jobs zur Kompilierung von Neo-Modellen. 

------
#### [ Linux ]


| Accelerator | X86\$164 | X86 | ARM64 | ARM\$1EABIHF | ARM\$1EABI | 
| --- | --- | --- | --- | --- | --- | 
| Kein Beschleuniger (CPU) | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | 
| NVIDIA GPUs | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | 
| Intel\$1Graphics | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | 
| ARM Mali | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | 

------
#### [ Android ]


| Accelerator | X86\$164 | X86 | ARM64 | ARM\$1EABIHF | ARM\$1EABI | 
| --- | --- | --- | --- | --- | --- | 
| Kein Beschleuniger (CPU) | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | 
| NVIDIA GPUs | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | 
| Intel\$1Graphics | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | 
| ARM Mali | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | 

------
#### [ Windows ]


| Accelerator | X86\$164 | X86 | ARM64 | ARM\$1EABIHF | ARM\$1EABI | 
| --- | --- | --- | --- | --- | --- | 
| Kein Beschleuniger (CPU) | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/success_icon.svg) Ja | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | ![\[alt text not found\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/negative_icon.svg) Nein | 

------

# Getestete Modelle
<a name="neo-supported-edge-tested-models"></a>

Die folgenden zusammenklappbaren Abschnitte enthalten Informationen zu Modellen für Machine Learning, die vom Amazon SageMaker Neo-Team getestet wurden. Erweitern Sie den zusammenklappbaren Abschnitt auf der Grundlage Ihres Frameworks, um zu überprüfen, ob ein Modell getestet wurde.

**Anmerkung**  
Dies ist keine umfassende Liste von Modellen, die mit Neo kompiliert werden können.

Unter [Unterstützte Frameworks](neo-supported-devices-edge-frameworks.md) und [Von SageMaker AI Neo unterstützte Operatoren](https://aws.amazon.com/releasenotes/sagemaker-neo-supported-frameworks-and-operators/) erfahren Sie, ob Sie Ihr Modell mit SageMaker AI Neo kompilieren können.

## DarkNet
<a name="collapsible-section-01"></a>


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Alexnet |  |  |  |  |  |  |  |  |  | 
| Resnet 50 | X | X |  | X | X | X |  | X | X | 
| Yolo V 2 |  |  |  | X | X | X |  | X | X | 
| YoloV2\$1Tiny | X | X |  | X | X | X |  | X | X | 
| Yolov 3\$1416 |  |  |  | X | X | X |  | X | X | 
| Yolov 3\$1Tiny | X | X |  | X | X | X |  | X | X | 

## MXNet
<a name="collapsible-section-02"></a>


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Alexnet |  |  | X |  |  |  |  |  |  | 
| Dichtes Netz 121 |  |  | X |  |  |  |  |  |  | 
| Densenet201 | X | X | X | X | X | X |  | X | X | 
| Googlenet | X | X |  | X | X | X |  | X | X | 
| Inception V3 |  |  |  | X | X | X |  | X | X | 
| MobileNet 0.75 | X | X |  | X | X | X |  |  | X | 
| MobileNet 1.0 | X | X | X | X | X | X |  |  | X | 
| MobileNet V2\$10.5 | X | X |  | X | X | X |  |  | X | 
| MobileNet V2\$11.0 | X | X | X | X | X | X | X | X | X | 
| MobileNetV3\$1groß | X | X | X | X | X | X | X | X | X | 
| MobileNetV3\$1Klein | X | X | X | X | X | X | X | X | X | 
| ResNest 50 |  |  |  | X | X |  |  | X | X | 
| ResNet18\$1V1 | X | X | X | X | X | X |  |  | X | 
| ResNet18\$1V2 | X | X |  | X | X | X |  |  | X | 
| ResNet50\$1V1 | X | X | X | X | X | X |  | X | X | 
| ResNet50\$1V2 | X | X | X | X | X | X |  | X | X | 
| ResNext101\$132x4D |  |  |  |  |  |  |  |  |  | 
| ResNext50\$132x4D | X |  | X | X | X |  |  | X | X | 
| Senet\$1154 |  |  |  | X | X | X |  | X | X | 
| SE\$1ResNext50\$132x4D | X | X |  | X | X | X |  | X | X | 
| SqueezeNet 1.0 | X | X | X | X | X | X |  |  | X | 
| SqueezeNet 1.1 | X | X | X | X | X | X |  | X | X | 
| VGG 11 | X | X | X | X | X |  |  | X | X | 
| Ausnahme | X | X | X | X | X | X |  | X | X | 
| Darknet 53 | X | X |  | X | X | X |  | X | X | 
| resnet18\$1v1b\$10.89 | X | X |  | X | X | X |  |  | X | 
| resnet50\$1v1d\$10.11 | X | X |  | X | X | X |  |  | X | 
| resnet50\$1v1d\$10.86 | X | X | X | X | X | X |  | X | X | 
| ssd\$1512\$1mobilenet1.0\$1coco | X |  | X | X | X | X |  | X | X | 
| ssd\$1512\$1mobilenet1.0\$1voc | X |  | X | X | X | X |  | X | X | 
| ssd\$1resnet50\$1v1 | X |  | X | X | X |  |  | X | X | 
| yolo3\$1darknet53\$1coco | X |  |  | X | X |  |  | X | X | 
| yolo3\$1mobilenet1.0\$1coco | X | X |  | X | X | X |  | X | X | 
| deeplab\$1resnet50 |  |  | X |  |  |  |  |  |  | 

## Keras
<a name="collapsible-section-03"></a>


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| dichtes Netz 121 | X | X | X | X | X | X |  | X | X | 
| densenet201 | X | X | X | X | X | X |  |  | X | 
| Anfang\$1v3 | X | X |  | X | X | X |  | X | X | 
| mobilenet\$1v1 | X | X | X | X | X | X |  | X | X | 
| mobilenet\$1v2 | X | X | X | X | X | X |  | X | X | 
| resnet152\$1v1 |  |  |  | X | X |  |  |  | X | 
| resnet152\$1v2 |  |  |  | X | X |  |  |  | X | 
| resnet50\$1v1 | X | X | X | X | X |  |  | X | X | 
| resnet50\$1v2 | X | X | X | X | X | X |  | X | X | 
| vgg 16 |  |  | X | X | X |  |  | X | X | 

## ONNX
<a name="collapsible-section-04"></a>


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| alexNet |  |  | X |  |  |  |  |  |  | 
| mobilenet Version 2-1.0 | X | X | X | X | X | X |  | X | X | 
| resnet 18 v1 | X |  |  | X | X |  |  |  | X | 
| resnet 18 v2 | X |  |  | X | X |  |  |  | X | 
| resnet 50 v1 | X |  | X | X | X |  |  | X | X | 
| resnet 50 v2 | X |  | X | X | X |  |  | X | X | 
| resnet 152 v1 |  |  |  | X | X | X |  |  | X | 
| resnet 152 v2 |  |  |  | X | X | X |  |  | X | 
| squeezenet1.1 | X |  | X | X | X | X |  | X | X | 
| vgg 19 |  |  | X |  |  |  |  |  | X | 

## PyTorch (FP32)
<a name="collapsible-section-05"></a>


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Ambarella CV-25 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| dichtes Netz 121 | X | X | X | X | X | X | X |  | X | X | 
| Anfang\$1v3 |  | X |  |  | X | X | X |  | X | X | 
| resnet152 |  |  |  |  | X | X | X |  |  | X | 
| resnet18 | X | X |  |  | X | X | X |  |  | X | 
| resnet 50 | X | X | X | X | X | X |  |  | X | X | 
| Squeezenet 1.0 | X | X |  |  | X | X | X |  |  | X | 
| squeezenet1.1 | X | X | X | X | X | X | X |  | X | X | 
| Yolov 4 |  |  |  |  | X | X |  |  |  |  | 
| Yolov 5 |  |  |  | X | X | X |  |  |  |  | 
| schnelleres rcnn\$1resnet50\$1fpn |  |  |  |  | X | X |  |  |  |  | 
| maskieren Sie rcnn\$1resnet50\$1fpn |  |  |  |  | X | X |  |  |  |  | 

## TensorFlow
<a name="collapsible-section-06"></a>

------
#### [ TensorFlow ]


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Ambarella CV-25 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| dichtes Netz 201 | X | X | X | X | X | X | X |  | X | X | 
| Anfang\$1v3 | X | X | X |  | X | X | X |  | X | X | 
| mobilenet100\$1v1 | X | X | X |  | X | X | X |  |  | X | 
| mobilenet100\$1v2.0 | X | X | X |  | X | X | X |  | X | X | 
| mobilenet130\$1v2 | X | X |  |  | X | X | X |  |  | X | 
| mobilenet140\$1v2 | X | X | X |  | X | X | X |  | X | X | 
| resnet50\$1v1.5 | X | X |  |  | X | X | X |  | X | X | 
| resnet50\$1v2 | X | X | X | X | X | X | X |  | X | X | 
| squeezenet | X | X | X | X | X | X | X |  | X | X | 
| maske\$1rcnn\$1inception\$1resnet\$1v2 |  |  |  |  | X |  |  |  |  |  | 
| ssd\$1mobilenet\$1v2 |  |  |  |  | X | X |  |  |  |  | 
| faster\$1rcnn\$1resnet50\$1low Vorschläge |  |  |  |  | X |  |  |  |  |  | 
| rfcn\$1resnet101 |  |  |  |  | X |  |  |  |  |  | 

------
#### [ TensorFlow.Keras ]


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Dichtes Net121  | X | X |  | X | X | X |  | X | X | 
| Densenet201 | X | X |  | X | X | X |  |  | X | 
| Inception V3 | X | X |  | X | X | X |  | X | X | 
| MobileNet | X | X |  | X | X | X |  | X | X | 
| MobileNet V2 | X | X |  | X | X | X |  | X | X | 
| NASnet groß |  |  |  | X | X |  |  | X | X | 
| NASnet Mobil | X | X |  | X | X | X |  | X | X | 
| ResNet101 |  |  |  | X | X | X |  |  | X | 
| ResNet101 V2 |  |  |  | X | X | X |  |  | X | 
| ResNet 152 |  |  |  | X | X |  |  |  | X | 
| ResNet 152 V2 |  |  |  | X | X |  |  |  | X | 
| ResNet 50 | X | X |  | X | X |  |  | X | X | 
| ResNet50 V2 | X | X |  | X | X | X |  | X | X | 
| VGG 16 |  |  |  | X | X |  |  | X | X | 
| Ausnahme | X | X |  | X | X | X |  | X | X | 

------

## TensorFlow-Lite
<a name="collapsible-section-07"></a>

------
#### [ TensorFlow-Lite (FP32) ]


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | i.MX 8M Plus | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| densenet\$12018\$104\$127 | X |  |  | X | X | X |  |  | X |  | 
| inception\$1resnet\$1v2\$12018\$104\$127 |  |  |  | X | X | X |  |  | X |  | 
| inception\$1v3\$12018\$104\$127 |  |  |  | X | X | X |  |  | X | X | 
| inception\$1v4\$12018\$104\$127 |  |  |  | X | X | X |  |  | X | X | 
| mansnet\$10.5\$1224\$109\$107\$12018 | X |  |  | X | X | X |  |  | X |  | 
| mnasnet\$11.0\$1224\$109\$107\$12018 | X |  |  | X | X | X |  |  | X |  | 
| mnasnet\$11.3\$1224\$109\$107\$12018 | X |  |  | X | X | X |  |  | X |  | 
| mobilenet\$1v1\$10.25\$1128 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v1\$10.25\$1224 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v1\$10.5\$1128 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v1\$10.5\$1224 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v1\$10.75\$1128 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v1\$10.75\$1224 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v1\$11.0\$1128 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v1\$11.0\$1192 | X |  |  | X | X | X |  |  | X | X | 
| mobilenet\$1v2\$11.0\$1224 | X |  |  | X | X | X |  |  | X | X | 
| resnet\$1v2\$1101 |  |  |  | X | X | X |  |  | X |  | 
| squeezenet\$12018\$104\$127 | X |  |  | X | X | X |  |  | X |  | 

------
#### [ TensorFlow-Lite (INT8) ]


| Modelle | ARM V8 | ARM Mali | Ambarella CV22 | Nvidia | Panorama | ZU TDA4VM | Qualcomm QCS603 | X86\$1Linux | X86\$1Windows | i.MX 8M Plus | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| inception\$1v1 |  |  |  |  |  |  | X |  |  | X | 
| Inception\$1v2 |  |  |  |  |  |  | X |  |  | X | 
| Anfang\$1v3 | X |  |  |  |  | X | X |  | X | X | 
| Inception\$1v4\$1299 | X |  |  |  |  | X | X |  | X | X | 
| mobilenet\$1v1\$10.25\$1128 | X |  |  |  |  | X |  |  | X | X | 
| mobilenet\$1v1\$10.25\$1224 | X |  |  |  |  | X |  |  | X | X | 
| mobilenet\$1v1\$10.5\$1128 | X |  |  |  |  | X |  |  | X | X | 
| mobilenet\$1v1\$10.5\$1224 | X |  |  |  |  | X |  |  | X | X | 
| mobilenet\$1v1\$10.75\$1128 | X |  |  |  |  | X |  |  | X | X | 
| mobilenet\$1v1\$10.75\$1224 | X |  |  |  |  | X | X |  | X | X | 
| mobilenet\$1v1\$11.0\$1128 | X |  |  |  |  | X |  |  | X | X | 
| mobilenet\$1v1\$11.0\$1224 | X |  |  |  |  | X | X |  | X | X | 
| mobilenet\$1v2\$11.0\$1224 | X |  |  |  |  | X | X |  | X | X | 
| deeplab-v3\$1513 |  |  |  |  |  |  | X |  |  |  | 

------

# Bereitstellen von Modellen
<a name="neo-deployment-edge"></a>

Sie können das Rechenmodul auf Edge-Geräten mit begrenzten Ressourcen bereitstellen, indem Sie: das kompilierte Modell von Amazon S3 auf Ihr Gerät herunterladen und [DLR](https://github.com/neo-ai/neo-ai-dlr) verwenden, oder Sie können [AWS IoT Greengrass verwenden](https://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-gg.html).

Bevor Sie fortfahren, stellen Sie sicher, dass Ihr Edge-Gerät von SageMaker Neo unterstützt werden muss. Unter [Unterstützte Frameworks, Geräte, Systeme und Architekturen](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge.html) erfahren Sie, welche Edge-Geräte unterstützt werden. Stellen Sie sicher, dass Sie Ihr Ziel-Edge-Gerät angegeben haben, als Sie den Kompilierungsauftrag eingereicht haben. Weitere Informationen finden Sie unter [Verwenden von Neo zum Kompilieren eines Modells](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation.html).

## Bereitstellen eines mit Neo kompilierten Modells (DLR)
<a name="neo-deployment-dlr"></a>

[DLR](https://github.com/neo-ai/neo-ai-dlr) ist eine kompakte, gemeinsame Laufzeit für Deep-Learning-Modelle und Entscheidungsbaummodelle. DLR verwendet die [TVM](https://github.com/neo-ai/tvm) Runtime, [Treelite](https://treelite.readthedocs.io/en/latest/install.html) Runtime und NVIDIA TensorRT™ und kann auch andere hardwarespezifische Laufzeiten enthalten. Das DLR bietet einheitliches Python/C\$1\$1 APIs zum Laden und Ausführen kompilierter Modelle auf verschiedenen Geräten.

Sie können die neueste Version des DLR-Pakets mit dem folgenden Pip-Befehl installieren:

```
pip install dlr
```

Informationen zur Installation von DLR auf GPU-Zielen oder Nicht-x86-Edge-Geräten finden Sie unter [Versionen](https://github.com/neo-ai/neo-ai-dlr/releases) für vorgefertigte Binärdateien oder [DLR installieren](https://neo-ai-dlr.readthedocs.io/en/latest/install.html) um DLR aus der Quelle zu erstellen. Um beispielsweise DLR für Raspberry Pi 3 zu installieren, können Sie Folgendes verwenden: 

```
pip install https://neo-ai-dlr-release.s3-us-west-2.amazonaws.com/v1.3.0/pi-armv7l-raspbian4.14.71-glibc2_24-libstdcpp3_4/dlr-1.3.0-py3-none-any.whl
```

## Ein Modell bereitstellen (AWS IoT Greengrass)
<a name="neo-deployment-greengrass"></a>

[AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-gg.html) erweitert Cloud-Funktionen auf lokale Geräte. Greengrass ermöglicht es Geräten, Daten näher an der Informationsquelle zu erfassen und zu analysieren, selbstständig auf lokale Ereignisse zu reagieren und in lokalen Netzwerken sicher untereinander zu kommunizieren. Mit AWS IoT Greengrass können Sie mithilfe von Cloud-trainierten Modellen Inferenzen für maschinelles Lernen an der Peripherie auf lokal generierte Daten durchführen. Derzeit können Sie Modelle auf allen AWS IoT Greengrass-Geräten bereitstellen, die auf Prozessoren der Serien ARM Cortex-A, Intel Atom und Nvidia Jetson basieren. Weitere Informationen zur Bereitstellung einer Lambda-Inferenzanwendung zur Durchführung von maschinellen Lerninferenzen mit AWS IoT Greengrass finden Sie unter [So konfigurieren Sie optimierte Machine-Learning-Inferenzen](https://docs.aws.amazon.com/greengrass/latest/developerguide/ml-dlc-console.html) mithilfe der Management Console. AWS 

# Einrichten von Neo auf Edge-Geräten
<a name="neo-getting-started-edge"></a>

Diese Anleitung zu den ersten Schritten mit Amazon SageMaker Neo zeigt Ihnen, wie Sie ein Modell kompilieren, Ihr Gerät einrichten und Rückschlüsse auf Ihrem Gerät ziehen. Die meisten Codebeispiele verwenden Boto3. Wir stellen Ihnen AWS CLI gegebenenfalls Befehle zur Verfügung, die Sie verwenden, sowie Anweisungen, wie Sie die Voraussetzungen für Neo erfüllen können. 

**Anmerkung**  
Sie können die folgenden Codefragmente auf Ihrem lokalen Computer, in einem SageMaker Notizbuch, in Amazon SageMaker Studio oder (je nach Ihrem Edge-Gerät) auf Ihrem Edge-Gerät ausführen. Das Setup ist ähnlich; es gibt jedoch zwei Hauptausnahmen, wenn Sie dieses Handbuch innerhalb einer SageMaker Notebook-Instance oder SageMaker Studio-Sitzung ausführen:   
Boto3 muss nicht installiert werden.
Sie müssen die `‘AmazonSageMakerFullAccess’` IAM-Richtlinie nicht hinzufügen

 In diesem Handbuch wird davon ausgegangen, dass Sie die folgenden Anweisungen auf Ihrem Edge-Gerät ausführen. 

# Voraussetzungen
<a name="neo-getting-started-edge-step0"></a>

SageMaker Neo ist eine Funktion, mit der Sie Modelle für maschinelles Lernen einmal trainieren und sie dann überall in der Cloud und am Edge ausführen können. Bevor Sie Ihre Modelle mit Neo kompilieren und optimieren können, müssen Sie einige Voraussetzungen einrichten. Sie müssen die erforderlichen Python-Bibliotheken installieren, Ihre AWS Anmeldeinformationen konfigurieren, eine IAM-Rolle mit den erforderlichen Berechtigungen erstellen und einen S3-Bucket zum Speichern von Modellartefakten einrichten. Außerdem müssen Sie über ein trainiertes Machine-Learning-Modell verfügen. Die folgenden Schritte führen Sie durch die Einrichtung:

1. **Installieren Sie Boto3**

   Wenn Sie diese Befehle auf Ihrem Edge-Gerät ausführen, müssen Sie den AWS SDK für Python (Boto3) installieren. Führen Sie in einer Python-Umgebung (vorzugsweise einer virtuellen Umgebung) Folgendes lokal auf dem Terminal Ihres Edge-Geräts oder in einer Jupyter-Notebook-Instance aus: 

------
#### [ Terminal ]

   ```
   pip install boto3
   ```

------
#### [ Jupyter Notebook ]

   ```
   !pip install boto3
   ```

------

1.  **Anmeldeinformationen einrichten AWS ** 

   Sie müssen Anmeldedaten für Amazon Web Services auf Ihrem Gerät einrichten, um SDK for Python (Boto3) ausführen zu können. Standardmäßig sollten die AWS Anmeldeinformationen in der Datei `~/.aws/credentials` auf Ihrem Edge-Gerät gespeichert werden. In der Datei mit den Anmeldeinformationen sollten Sie zwei Umgebungsvariablen sehen: `aws_access_key_id` und `aws_secret_access_key`. 

   Führen Sie in Ihrem Terminal aus: 

   ```
   $ more ~/.aws/credentials
   
   [default]
   aws_access_key_id = YOUR_ACCESS_KEY
   aws_secret_access_key = YOUR_SECRET_KEY
   ```

   Das [AWS allgemeine Referenzhandbuch](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) enthält Anweisungen, wie Sie die erforderlichen `aws_access_key_id` und `aws_secret_access_key` erhalten. Weitere Informationen zur Einrichtung von Anmeldeinformationen auf Ihrem Gerät finden Sie in der [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration) Dokumentation. 

1.  **Richten Sie eine IAM-Rolle ein und fügen Sie Richtlinien hinzu.** 

   Neo benötigt Zugriff auf Ihre S3-Bucket-URI. Erstellen Sie eine IAM-Rolle, die SageMaker KI ausführen kann und über die Berechtigung verfügt, auf die S3-URI zuzugreifen. Sie können eine IAM-Rolle erstellen, indem Sie entweder SDK for Python (Boto3), die Konsole oder AWS CLI. Das folgende Beispiel veranschaulicht, wie eine IAM-Rolle mit SDK for Python (Boto3) erstellt wird: 

   ```
   import boto3
   
   AWS_REGION = 'aws-region'
   
   # Create an IAM client to interact with IAM
   iam_client = boto3.client('iam', region_name=AWS_REGION)
   role_name = 'role-name'
   ```

   Weitere Informationen zum Erstellen einer IAM-Rolle mit der Konsole oder über die AWS API finden Sie unter [Einen IAM-Benutzer in Ihrem Konto erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_api). AWS CLI AWS 

    Erstellen Sie ein Wörterbuch, das die IAM-Richtlinie beschreibt, die Sie anhängen. Diese Richtlinie wird verwendet, um eine neue IAM-Rolle zu erstellen. 

   ```
   policy = {
       'Statement': [
           {
               'Action': 'sts:AssumeRole',
               'Effect': 'Allow',
               'Principal': {'Service': 'sagemaker.amazonaws.com'},
           }],  
        'Version': '2012-10-17		 	 	 '
   }
   ```

   Erstellen Sie eine neue IAM-Rolle mit der Richtlinie, die Sie oben definiert haben:

   ```
   import json 
   
   new_role = iam_client.create_role(
       AssumeRolePolicyDocument=json.dumps(policy),
       Path='/',
       RoleName=role_name
   )
   ```

   Sie müssen wissen, wie Ihr Amazon-Ressourcenname (ARN) lautet, wenn Sie in einem späteren Schritt einen Kompilierungsauftrag erstellen. Speichern Sie ihn daher auch in einer Variablen. 

   ```
   role_arn = new_role['Role']['Arn']
   ```

    Nachdem Sie eine neue Rolle erstellt haben, fügen Sie die Berechtigungen hinzu, die sie für die Interaktion mit Amazon SageMaker AI und Amazon S3 benötigt: 

   ```
   iam_client.attach_role_policy(
       RoleName=role_name,
       PolicyArn='arn:aws:iam::aws:policy/AmazonSageMakerFullAccess'
   )
   
   iam_client.attach_role_policy(
       RoleName=role_name,
       PolicyArn='arn:aws:iam::aws:policy/AmazonS3FullAccess'
   );
   ```

1. **Erstellen Sie einen Amazon-S3-Bucket zur Speicherung Ihrer Modellartefakte**

   SageMaker Neo wird von Amazon S3 aus auf Ihre Modellartefakte zugreifen

------
#### [ Boto3 ]

   ```
   # Create an S3 client
   s3_client = boto3.client('s3', region_name=AWS_REGION)
   
   # Name buckets
   bucket='name-of-your-bucket'
   
   # Check if bucket exists
   if boto3.resource('s3').Bucket(bucket) not in boto3.resource('s3').buckets.all():
       s3_client.create_bucket(
           Bucket=bucket,
           CreateBucketConfiguration={
               'LocationConstraint': AWS_REGION
           }
       )
   else:
       print(f'Bucket {bucket} already exists. No action needed.')
   ```

------
#### [ CLI ]

   ```
   aws s3 mb s3://'name-of-your-bucket' --region specify-your-region 
   
   # Check your bucket exists
   aws s3 ls s3://'name-of-your-bucket'/
   ```

------

1. **Trainieren eines Machine-Learning-Modells**

   Weitere Informationen zum [Trainieren eines Modells für maschinelles Lernen mit Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html) finden Sie unter Train a Model with Amazon SageMaker AI. Sie können Ihr lokal trainiertes Modell optional direkt in einen Amazon-S3-URI-Bucket hochladen. 
**Anmerkung**  
 Stellen Sie sicher, dass das Modell je nach verwendetem Framework korrekt formatiert ist. Weitere Informationen finden Sie unter [Welche Formen der Eingabedaten erwartet SageMaker Neo?](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation.html#neo-job-compilation-expected-inputs) 

   Wenn Sie noch kein Modell haben, verwenden Sie den `curl` Befehl, um eine lokale Kopie des `coco_ssd_mobilenet` Modells von TensorFlow der Website abzurufen. Das Modell, das Sie gerade kopiert haben, ist ein Objekterkennungsmodell, das anhand des [COCO-Datensatzes](https://cocodataset.org/#home) trainiert wurde. Geben Sie Folgendes in Ihr Jupyter Notebook ein:

   ```
   model_zip_filename = './coco_ssd_mobilenet_v1_1.0.zip'
   !curl http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip \
       --output {model_zip_filename}
   ```

   Beachten Sie, dass dieses spezielle Beispiel in eine .zip-Datei gepackt wurde. Entpacken Sie diese Datei und verpacken Sie sie als komprimierte TAR-Datei (`.tar.gz`) neu, bevor Sie sie in späteren Schritten verwenden. Geben Sie Folgendes in Ihr Jupyter Notebook ein: 

   ```
   # Extract model from zip file
   !unzip -u {model_zip_filename}
   
   model_filename = 'detect.tflite'
   model_name = model_filename.split('.')[0]
   
   # Compress model into .tar.gz so SageMaker Neo can use it
   model_tar = model_name + '.tar.gz'
   !tar -czf {model_tar} {model_filename}
   ```

1. **Laden Sie das trainierte Modell in einen S3-Bucket hoch**

   Sobald Sie Ihren Modus für Machine Learning trainiert haben, speichern Sie ihn in einem S3-Bucket. 

------
#### [ Boto3 ]

   ```
   # Upload model        
   s3_client.upload_file(Filename=model_filename, Bucket=bucket, Key=model_filename)
   ```

------
#### [ CLI ]

   Ersetzen Sie `your-model-filename` und `amzn-s3-demo-bucket` durch den Namen Ihres Amazon-S3-Buckets. 

   ```
   aws s3 cp your-model-filename s3://amzn-s3-demo-bucket
   ```

------

# Kompilieren des Modells
<a name="neo-getting-started-edge-step1"></a>

Sobald Sie die [Voraussetzungen](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-getting-started-edge.html#neo-getting-started-edge-step0) erfüllt haben, können Sie Ihr Modell mit Amazon SageMaker AI Neo kompilieren. Sie können Ihr Modell mit der Konsole oder dem AWS CLI[Amazon Web Services SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) kompilieren, siehe [Verwenden von Neo zum Kompilieren eines](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation.html) Modells. In diesem Beispiel kompilieren Sie Ihr Modell mit Boto3.

Um ein Modell zu kompilieren, benötigt SageMaker Neo die folgenden Informationen:

1.  **Die Amazon-S3-Bucket-URI, in der Sie das trainierte Modell gespeichert haben.** 

   Wenn Sie die Voraussetzungen erfüllt haben, wird der Name Ihres Buckets in einer Variablen mit dem Namen `bucket` gespeichert. Der folgende Codeausschnitt zeigt, wie Sie all Ihre Buckets auflisten können, indem Sie AWS CLI verwenden. 

   ```
   aws s3 ls
   ```

   Beispiel: 

   ```
   $ aws s3 ls
   2020-11-02 17:08:50 bucket
   ```

1.  **Die Amazon-S3-Bucket-URI, in der Sie das kompilierte Modell speichern möchten.** 

   Der folgende Codeausschnitt verknüpft Ihre Amazon-S3-Bucket-URI mit dem Namen eines Ausgabeverzeichnisses namens `output`. 

   ```
   s3_output_location = f's3://{bucket}/output'
   ```

1.  **Das Framework für Machine Learning, mit dem Sie Ihr Modell trainiert haben.** 

   Definieren Sie das Framework, mit dem Sie Ihr Modell trainiert haben.

   ```
   framework = 'framework-name'
   ```

   Wenn Sie beispielsweise ein Modell kompilieren möchten, das mit trainiert wurde TensorFlow, können Sie entweder `tflite` oder verwenden`tensorflow`. Verwenden Sie `tflite` diese Option, wenn Sie eine leichtere Version verwenden möchten TensorFlow , die weniger Speicherplatz benötigt. 

   ```
   framework = 'tflite'
   ```

   Eine vollständige Liste der von NEO unterstützten Frameworks finden Sie unter [Unterstützte Frameworks, Geräte, Systeme und Architekturen](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge.html). 

1.  **Die Form der Eingabe Ihres Modells.** 

    Neo benötigt den Namen und die Form Ihres Eingangstensors. Name und Form werden als Schlüssel-Wert-Paare weitergeleitet. `value` ist eine Liste der ganzzahligen Dimensionen eines Eingangstensors und `key` ist der genaue Name eines Eingangstensors im Modell. 

   ```
   data_shape = '{"name": [tensor-shape]}'
   ```

   Beispiel:

   ```
   data_shape = '{"normalized_input_image_tensor":[1, 300, 300, 3]}'
   ```
**Anmerkung**  
Stellen Sie sicher, dass das Modell je nach verwendetem Framework korrekt formatiert ist. Weitere Informationen [findest du unter Welche Formen von Eingabedaten erwartet SageMaker Neo?](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation.html#neo-job-compilation-expected-inputs) Der Schlüssel in diesem Wörterbuch muss in den Namen des neuen Eingangstensors geändert werden.

1.  **Entweder der Name des Zielgeräts, für das kompiliert werden soll, oder die allgemeinen Details der Hardwareplattform** 

   ```
   target_device = 'target-device-name'
   ```

   Wenn Sie beispielsweise eine Bereitstellung auf einem Raspberry Pi 3 durchführen möchten, verwenden Sie: 

   ```
   target_device = 'rasp3b'
   ```

   Die gesamte Liste der unterstützten Edge-Geräte finden Sie unter [Unterstützte Frameworks, Geräte, Systeme und Architekturen](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge.html).

 Nachdem Sie die vorherigen Schritte abgeschlossen haben, können Sie einen Kompilierungsauftrag an Neo senden. 

```
# Create a SageMaker client so you can submit a compilation job
sagemaker_client = boto3.client('sagemaker', region_name=AWS_REGION)

# Give your compilation job a name
compilation_job_name = 'getting-started-demo'
print(f'Compilation job for {compilation_job_name} started')

response = sagemaker_client.create_compilation_job(
    CompilationJobName=compilation_job_name,
    RoleArn=role_arn,
    InputConfig={
        'S3Uri': s3_input_location,
        'DataInputConfig': data_shape,
        'Framework': framework.upper()
    },
    OutputConfig={
        'S3OutputLocation': s3_output_location,
        'TargetDevice': target_device 
    },
    StoppingCondition={
        'MaxRuntimeInSeconds': 900
    }
)

# Optional - Poll every 30 sec to check completion status
import time

while True:
    response = sagemaker_client.describe_compilation_job(CompilationJobName=compilation_job_name)
    if response['CompilationJobStatus'] == 'COMPLETED':
        break
    elif response['CompilationJobStatus'] == 'FAILED':
        raise RuntimeError('Compilation failed')
    print('Compiling ...')
    time.sleep(30)
print('Done!')
```

Wenn Sie zusätzliche Informationen zum Debuggen benötigen, fügen Sie die folgende Druckanweisung bei:

```
print(response)
```

Wenn der Kompilierungsauftrag erfolgreich ist, wird Ihr kompiliertes Modell in dem Amazon S3-Ausgabe-Bucket gespeichert, den Sie zuvor angegeben haben (`s3_output_location`). Laden Sie Ihr kompiliertes Modell lokal herunter: 

```
object_path = f'output/{model}-{target_device}.tar.gz'
neo_compiled_model = f'compiled-{model}.tar.gz'
s3_client.download_file(bucket, object_path, neo_compiled_model)
```

# Einrichten Ihres -Geräts
<a name="neo-getting-started-edge-step2"></a>

Sie müssen Pakete auf Ihrem Edge-Gerät installieren, damit Ihr Gerät Rückschlüsse ziehen kann. Sie müssen außerdem entweder [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-gg.html) Core oder [Deep Learning Runtime (DLR](https://github.com/neo-ai/neo-ai-dlr)) installieren. In diesem Beispiel installieren Sie Pakete, die erforderlich sind, um Rückschlüsse für den `coco_ssd_mobilenet` Objekterkennungsalgorithmus zu ziehen, und Sie verwenden DLR.

1. **Installieren Sie zusätzliche Pakete**

   Zusätzlich zu Boto3 müssen Sie bestimmte Bibliotheken auf Ihrem Edge-Gerät installieren. Welche Bibliotheken Sie installieren, hängt von Ihrem Anwendungsfall ab. 

   Für den `coco_ssd_mobilenet` Objekterkennungsalgorithmus, den Sie zuvor heruntergeladen haben, müssen Sie beispielsweise [NumPy](https://numpy.org/)für Datenmanipulation und Statistik, [PIL](https://pillow.readthedocs.io/en/stable/) zum Laden von Bildern und [Matplotlib](https://matplotlib.org/) zum Generieren von Diagrammen installieren. Sie benötigen außerdem eine Kopie von, TensorFlow wenn Sie die Auswirkungen der Kompilierung mit Neo im Vergleich zu einer Baseline abschätzen möchten. 

   ```
   !pip3 install numpy pillow tensorflow matplotlib 
   ```

1. **Installieren Sie die Inference Engine auf Ihrem Gerät**

   Um Ihr NEO-kompiliertes Modell auszuführen, installieren Sie die [Deep Learning Runtime (DLR)](https://github.com/neo-ai/neo-ai-dlr) auf Ihrem Gerät. DLR ist eine kompakte, gemeinsame Runtime für Deep-Learning-Modelle und Entscheidungsbaummodelle. Auf x86\$164-CPU-Zielen, auf denen Linux ausgeführt wird, können Sie die neueste Version des DLR-Pakets mit dem folgenden `pip` Befehl installieren.

   ```
   !pip install dlr
   ```

   Informationen zur Installation von DLR auf GPU-Zielen oder Nicht-x86-Edge-Geräten finden Sie unter [Versionen](https://github.com/neo-ai/neo-ai-dlr/releases) für vorgefertigte Binärdateien oder [DLR installieren](https://neo-ai-dlr.readthedocs.io/en/latest/install.html), um DLR aus der Quelle zu erstellen. Um beispielsweise DLR für Raspberry Pi 3 zu installieren, können Sie Folgendes verwenden: 

   ```
   !pip install https://neo-ai-dlr-release.s3-us-west-2.amazonaws.com/v1.3.0/pi-armv7l-raspbian4.14.71-glibc2_24-libstdcpp3_4/dlr-1.3.0-py3-none-any.whl
   ```

# Erstellen von Inferenzen auf Ihrem Gerät
<a name="neo-getting-started-edge-step3"></a>

In diesem Beispiel verwenden Sie Boto3, um die Ausgabe Ihres Kompilierungsjobs auf Ihr Edge-Gerät herunterzuladen. Anschließend importieren Sie DLR, laden Beispielbilder aus dem Datensatz herunter, passen die Größe dieses Bildes an die ursprüngliche Eingabe des Modells an und treffen dann eine Vorhersage.

1. **Laden Sie Ihr kompiliertes Modell von Amazon S3 auf Ihr Gerät herunter und extrahieren Sie es aus der komprimierten TAR-Datei.** 

   ```
   # Download compiled model locally to edge device
   object_path = f'output/{model_name}-{target_device}.tar.gz'
   neo_compiled_model = f'compiled-{model_name}.tar.gz'
   s3_client.download_file(bucket_name, object_path, neo_compiled_model)
   
   # Extract model from .tar.gz so DLR can use it
   !mkdir ./dlr_model # make a directory to store your model (optional)
   !tar -xzvf ./compiled-detect.tar.gz --directory ./dlr_model
   ```

1. **Importieren Sie DLR und ein initialisiertes `DLRModel`-Objekt.**

   ```
   import dlr
   
   device = 'cpu'
   model = dlr.DLRModel('./dlr_model', device)
   ```

1. **Laden Sie ein Bild für die Inferenz herunter und formatieren Sie es entsprechend der Art und Weise, wie Ihr Modell trainiert wurde**.

   In diesem `coco_ssd_mobilenet` Beispiel können Sie ein Bild aus dem [COCO-Datensatz](https://cocodataset.org/#home) herunterladen und das Bild zu `300x300` umstellen: 

   ```
   from PIL import Image
   
   # Download an image for model to make a prediction
   input_image_filename = './input_image.jpg'
   !curl https://farm9.staticflickr.com/8325/8077197378_79efb4805e_z.jpg --output {input_image_filename}
   
   # Format image so model can make predictions
   resized_image = image.resize((300, 300))
   
   # Model is quantized, so convert the image to uint8
   x = np.array(resized_image).astype('uint8')
   ```

1. **Verwenden Sie DLR, um Rückschlüsse zu ziehen**.

   Schließlich können Sie DLR verwenden, um eine Vorhersage für das Bild zu treffen, das Sie gerade heruntergeladen haben: 

   ```
   out = model.run(x)
   ```

[Weitere Beispiele für die Verwendung von DLR, um Rückschlüsse aus einem NEO-kompilierten Modell auf einem Edge-Gerät zu ziehen, finden Sie im Github-Repository. neo-ai-dlr ](https://github.com/neo-ai/neo-ai-dlr) 