ML-Feedback- - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

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.

ML-Feedback-

Warnung

Dieser Konnektor ist in diePhase „verlängerte Lebensdauer“, undAWS IoT Greengrassveröffentlicht keine Updates, die Funktionen, Verbesserungen vorhandener Funktionen, Sicherheitspatches oder Bugfixes bereitstellen. Weitere Informationen finden Sie unter AWS IoT Greengrass Version 1Wartungspolitik.

Der ML-Feedback-Konnektor erleichtert den Zugriff auf Ihre Machine Learning (ML) -Modelldaten für die Modellneuschulung und -analyse. Der Konnektor:

  • Lädt Eingabedaten (Beispiele), die von Ihrem ML-Modell verwendet werden, in Amazon S3 hoch. Die Modelleingabe kann in einem beliebigen Format vorliegen, z. B. in Form von Bildern, im JSON-Format oder als Audio. Nachdem Beispiele in die Cloud hochgeladen wurden, können Sie diese verwenden, um das Modell neu zu schulen und so die Genauigkeit und Präzision seiner Prognosen zu verbessern. Sie können beispielsweise die Datei verwendenSageMaker Ground Truthum Ihre Proben zu kennzeichnen undSageMakerum das Modell neu zu trainieren.

  • Veröffentlicht die Prognoseergebnisse aus dem Modell als MQTT-Nachrichten. Auf diese Weise können Sie die Inferenzqualität Ihres Modells in Echtzeit überwachen und analysieren. Sie können die Prognoseergebnisse auch speichern und mit ihrer Hilfe Trends im Laufe der Zeit analysieren.

  • Veröffentlicht Metriken zu Beispiel-Uploads und Beispieldaten in Amazon CloudWatch.

Um diesen Konnektor zu konfigurieren, beschreiben Sie Ihre unterstützten Feedback-Konfigurationen im JSON-Format. Eine Feedback-Konfiguration definiert Eigenschaften wie z. B. den Amazon S3 S3-Ziel-Bucket, den Inhaltstyp undSamplingstrategieaus. (Mit einer Samplingstrategie wird ermittelt, welche Beispiele hochgeladen werden sollen.)

Sie können den ML-Feedback-Konnektorin den folgenden Szenarien verwenden:

  • Mit benutzerdefinierten Lambda-Funktionen. Ihre lokalen Inferenz Lambda-Funktionen verwenden dieAWS IoT GreengrassMachine Learning SDK, um diesen Konnektor aufzurufen und die Ziel-Feedback-Konfiguration, die Modelleingabe und die Modellausgabe (Prognoseergebnisse) zu übergeben. Ein Beispiel finden Sie unter Beispiel für die Verwendung.

  • Mit derKonnektor für ML-Bildklassi(V2). Um diesen Konnektor mit dem -Konnektor ML Image Classification zu verwenden, konfigurieren SieMLFeedbackConnectorConfigIdParameter für den ML-Bildklassifikations-Konnektor.

  • Mit derML-Objekterkennungsanschlussaus. Um diesen Konnektor mit dem ML Object Detection -Konnektor zu verwenden, konfigurieren SieMLFeedbackConnectorConfigIdParameter für den ML-Objekterkennungs-Konnektor.

ARN: arn:aws:greengrass:region::/connectors/MLFeedback/versions/1

Voraussetzungen

Dieser Konnektor hat die folgenden Anforderungen:

  • AWS IoT GreengrassCore-Software v1.9.3 oder höher.

  • PythonVersion 3.7 oder 3.8 auf dem Core-Gerät installiert und der Umgebungsvariablen PATH hinzugefügt.

    Anmerkung

    Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom Standardinstallationsordner für Python 3.8 zu den installierten Python 3.8-Binärdateien zu erstellen.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.

  • Ein oder mehrere Amazon S3 S3-Buckets. Wie viele Buckets Sie verwenden, hängt von Ihrer Samplingstrategie ab.

  • DieGreengrass-Gruppenrolle.konfiguriert, um dies3:PutObject-Aktion für Objekte im Amazon S3 S3-Ziel-Bucket, wie im folgenden Beispiel-IAM-Richtlinie gezeigt.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ] }

    Die Richtlinie sollte alle Ziel-Buckets als Ressourcen enthalten. Sie können granularen oder bedingten Zugriff auf Ressourcen gewähren (etwa mit einem Benennungsschema mit Platzhaltern *).

    Für die Gruppenrollenanforderung müssen Sie die Rolle so konfigurieren, dass die erforderlichen Berechtigungen erteilt werden, und sicherstellen, dass die Rolle der Gruppe hinzugefügt wurde. Weitere Informationen finden Sie unter Verwalten der Greengrass-Gruppenrolle (Konsole) oder Verwalten der Greengrass-Gruppenrolle (CLI).

  • DieKonnektor CloudWatch-MetrikenSie wurden der Greengrass-Gruppe hinzugefügt und konfiguriert. Nur erforderlich, wenn Sie die Berichterstellungsfunktion für Metriken verwenden möchten.

  • AWS IoT GreengrassMachine Learning Learning-SDKVersion 1.1.0 ist für die Interaktion mit diesem Konnektor erforderlich.

Parameter

FeedbackConfigurationMap

Eine Gruppe von einer oder mehreren Feedback-Konfigurationen, die der -Konnektor verwenden kann, um Beispiele in Amazon S3 hochzuladen. Eine Feedback-Konfiguration definiert Parameter wie z. B. den Ziel-Bucket, den Inhaltstyp und die Samplingstrategie. Wenn dieser Konnektor aufgerufen wird, gibt die aufrufende Lambda-Funktion oder der Konnektor eine Ziel-Feedback-Konfiguration an.

Anzeigename imAWS IoT-Konsole Kartonkonfigurationskarte

Erforderlich:true

Type: Eine wohlgeformte JSON-Zeichenfolge, die den Satz der unterstützten Feedback-Konfigurationen definiert. Ein Beispiel finden Sie unter Beispiel für FeedbackConfigurationMap.

Für die ID eines Feedback-Konfigurationsobjekts gelten folgende Anforderungen.

Die ID:

  • Muss für alle Konfigurationsobjekte eindeutig sein.

  • Muss mit einem Buchstaben oder einer Zahl beginnen. Kann Kleinbuchstaben und Großbuchstaben, Zahlen und Bindestriche enthalten.

  • Muss zwischen 2 und 63 Zeichen lang sein.

Erforderlich:true

Typ: string

Gültiges Pattern:^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$

Beispiele: MyConfig0, config-a, 12id.

Der Text eines Feedback-Konfigurationsobjekts enthält die folgenden Eigenschaften.

s3-bucket-name

Der Name des Amazon S3 S3-Ziel-Buckets.

Anmerkung

Die Gruppenrolle muss die Aktion s3:PutObject auf allen Ziel-Buckets erlauben. Weitere Informationen finden Sie unter Voraussetzungen.

Erforderlich:true

Typ: string

Gültiges Pattern:^[a-z0-9\.\-]{3,63}$

content-type

Der Inhaltstyp der hochzuladenden Beispiele. Alle Inhalte für eine einzelne Feedback-Konfiguration müssen denselben Typ aufweisen.

Erforderlich:true

Typ: string

Beispiele: image/jpeg, application/json, audio/ogg.

s3-prefix

Das Schlüsselpräfix, das für hochgeladene Beispiele verwendet werden soll. Ein Präfix ist einem Verzeichnisnamen ähnlich. Es bietet Ihnen die Möglichkeit, ähnliche Daten unter demselben Verzeichnis in einem Bucket zu speichern. Weitere Informationen finden Sie unterObjektschlüssel und MetadatenimBenutzerhandbuch für Amazon Simple Storage Serviceaus.

Erforderlich:false

Typ: string

file-ext

Die Dateierweiterung, die für hochgeladene Beispiele verwendet werden soll. Es muss sich um eine gültige Dateierweiterung für den Inhaltstyp handeln.

Erforderlich:false

Typ: string

Beispiele: jpg, json, ogg.

sampling-strategy

Die Samplingstrategie zum Filtern der hochzuladenden Beispiele. Wenn nicht angegeben, versucht der Konnektor, alle empfangenen Beispiele hochzuladen.

Erforderlich:false

Type: Eine wohlgeformte JSON-Zeichenfolge mit den folgenden Eigenschaften.

strategy-name

Der Name der Samplingstrategie.

Erforderlich:true

Typ: string

Gültige Werte: RANDOM_SAMPLING, LEAST_CONFIDENCE, MARGIN oder ENTROPY

rate

Die Rate für die Random-Samplingstrategie.

Erforderlich:truewennstrategy-nameistRANDOM_SAMPLINGaus.

Typ: number

Zulässige Werte: 0.0 - 1.0

threshold

Der Schwellenwert für die Samplingstrategie Least Confidence (Geringste Zuverlässigkeit), Margin (Abstand) oder Entropy (Entropie).

Erforderlich:truewennstrategy-nameistLEAST_CONFIDENCE,MARGIN, oderENTROPYaus.

Typ: number

Zulässige Werte:

  • 0.0 - 1.0 für die Strategie LEAST_CONFIDENCE oder MARGIN.

  • 0.0 - no limit für die Strategie ENTROPY.

RequestLimit

Die maximale Anzahl von Anforderungen, die der Konnektor gleichzeitig verarbeiten kann.

Mithilfe dieses Parameters können Sie die Speicherbelegung einschränken, indem Sie die Anzahl der Anforderungen begrenzen, die der Konnektor gleichzeitig verarbeitet. Über dieses Limit hinausgehende Anforderungen werden ignoriert.

Anzeigename imAWS IoT-Konsole Anforderungslimit

Erforderlich:false

Typ: string

Zulässige Werte: 0 - 999

Gültiges Pattern:^$|^[0-9]{1,3}$

Beispiel für das Erstellen eines Konnektors (AWS CLI)

Der folgende -CLI-Befehl erstellt einenConnectorDefinitionmit einer Erstversion, die den ML-Feedback-Konnektorenthält.

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyMLFeedbackConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/MLFeedback/versions/1", "Parameters": { "FeedbackConfigurationMap": "{ \"RandomSamplingConfiguration\": { \"s3-bucket-name\": \"my-aws-bucket-random-sampling\", \"content-type\": \"image/png\", \"file-ext\": \"png\", \"sampling-strategy\": { \"strategy-name\": \"RANDOM_SAMPLING\", \"rate\": 0.5 } }, \"LeastConfidenceConfiguration\": { \"s3-bucket-name\": \"my-aws-bucket-least-confidence-sampling\", \"content-type\": \"image/png\", \"file-ext\": \"png\", \"sampling-strategy\": { \"strategy-name\": \"LEAST_CONFIDENCE\", \"threshold\": 0.4 } } }", "RequestLimit": "10" } } ] }'

Beispiel für FeedbackConfigurationMap

Im Folgenden sehen Sie einen erweiterten Beispielwert für den Parameter FeedbackConfigurationMap. Dieses Beispiel enthält mehrere Feedback-Konfigurationen, die verschiedene Samplingstrategien verwenden.

{ "ConfigID1": { "s3-bucket-name": "my-aws-bucket-random-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "RANDOM_SAMPLING", "rate": 0.5 } }, "ConfigID2": { "s3-bucket-name": "my-aws-bucket-margin-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "MARGIN", "threshold": 0.4 } }, "ConfigID3": { "s3-bucket-name": "my-aws-bucket-least-confidence-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "LEAST_CONFIDENCE", "threshold": 0.4 } }, "ConfigID4": { "s3-bucket-name": "my-aws-bucket-entropy-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "ENTROPY", "threshold": 2 } }, "ConfigID5": { "s3-bucket-name": "my-aws-bucket-no-sampling", "s3-prefix": "DeviceA", "content-type": "application/json" } }

Samplingstrategien

Der Konnektor unterstützt vier Samplingstrategien, die bestimmen, ob Beispiele hochgeladen werden sollen, die an den Konnektor übergeben werden. Beispiele sind einzelne Dateninstanzen, die von einem Modell für eine Prognose verwendet werden. Sie können Samplingstrategien verwenden, um nach den Beispielen zu filtern, die die Modellgenauigkeit am ehesten verbessern.

RANDOM_SAMPLING

Lädt nach dem Zufallsprinzip Beispiele basierend auf der angegebenen Rate hoch. Ein Beispiel wird hochgeladen, wenn ein zufällig generierter Wert kleiner als die Rate ist. Je höher die Rate, desto mehr Beispiele werden hochgeladen.

Anmerkung

Diese Strategie ignoriert alle bereitgestellten Modellprognosen.

LEAST_CONFIDENCE

Lädt Beispiele hoch, deren maximale Zuverlässigkeitswahrscheinlichkeit unter den angegebenen Schwellenwert fällt.

Beispielszenario:

Schwellenwert: .6

Modellprognose: [.2, .2, .4, .2]

Maximale Zuverlässigkeitswahrscheinlichkeit: .4

Ergebnis:

Verwenden Sie das Beispiel, da die maximale Zuverlässigkeitswahrscheinlichkeit (.4) <= Schwellenwert (.6) ist.

MARGIN

Lädt Beispiele hoch, wenn der Abstand zwischen den beiden höchsten Zuverlässigkeitswahrscheinlichkeiten innerhalb des angegebenen Schwellenwerts liegt. Der Abstand ist die Differenz zwischen den beiden höchsten Zuverlässigkeitswahrscheinlichkeiten.

Beispielszenario:

Schwellenwert: .02

Modellprognose: [.3, .35, .34, .01]

Zwei höchste Zuverlässigkeitswahrscheinlichkeiten: [.35, .34]

Abstand: .01 (.35 - .34)

Ergebnis:

Verwenden Sie das Beispiel, da der Abstand (.01) <= Schwellenwert (.02) ist.

ENTROPY

Lädt Beispiele hoch, deren Entropie größer als der angegebene Schwellenwert ist. Verwendet die normalisierte Entropie der Modellprognose.

Beispielszenario:

Schwellenwert: 0.75

Modellprognose: [.5, .25, .25]

Entropie für die Prognose: 1.03972

Ergebnis:

Verwenden Sie das Beispiel, da die Entropie (1.03972) > Schwellenwert (0.75) ist.

Eingabedaten

Benutzerdefinierte Lambda-Funktionen verwenden diepublishFunktion desfeedbackKunde imAWS IoT GreengrassMachine Learning SDK zum Aufrufen des Konnektors. Ein Beispiel finden Sie unter Beispiel für die Verwendung.

Anmerkung

Dieser Konnektor akzeptiert keine MQTT-Nachrichten als Eingabedaten.

Die publish-Funktion verwendet die folgenden Argumente:

ConfigId

Die ID der Ziel-Feedback-Konfiguration. Diese muss mit der ID einer Feedback-Konfiguration übereinstimmen, die imFeedbackConfigurationMap-Parameter für den ML-Feedback-Anschluss.

Erforderlich: true

Typ: Zeichenfolge

ModelIeingabe

Die Eingabedaten, die an ein Modell zur Inferenz übergeben wurden. Diese Eingabedaten werden unter Verwendung der Zielkonfiguration hochgeladen, es sei denn, sie werden basierend auf der Samplingstrategie herausgefiltert.

Erforderlich: true

Typ: Byte

ModelPrediction

Die Prognoseergebnisse aus dem Modell. Ergebnistyp kann ein Wörterbuch oder eine Liste sein. Die Prognoseergebnisse des -Konnektors ML Image Classification beispielsweise sind eine Liste von Wahrscheinlichkeiten (z. B.[0.25, 0.60, 0.15]) enthalten. Diese Daten werden im Thema /feedback/message/prediction veröffentlicht.

Erforderlich: true

Typ: Wörterbuch oder Liste vonfloatWerte

Metadaten

Kundendefinierte, anwendungsspezifische Metadaten, die an das hochgeladene Beispiel angefügt und im Thema /feedback/message/prediction veröffentlicht werden. Der Konnektor fügt auch einen publish-ts-Schlüssel mit einem Zeitstempelwert in die Metadaten ein.

Erforderlich: false

Typ: Wörterbuch

Beispiel: {"some-key": "some value"}

Ausgabedaten

Dieser Konnektor veröffentlicht Daten in drei MQTT-Themen:

  • Statusinformationen vom Konnektor im Thema feedback/message/status.

  • Prognoseergebnisse im Thema feedback/message/prediction.

  • Metriken für CloudWatch auf dercloudwatch/metric/put-Thema.

Sie müssen Abonnements konfigurieren, damit der Konnektor über MQTT-Themen kommunizieren kann. Weitere Informationen finden Sie unter Eingaben und Ausgaben.

Themenfilter: feedback/message/status

Verwenden Sie dieses Thema, um den Status von Beispiel-Uploads und verworfenen Beispielen zu überwachen. Der Konnektor veröffentlicht jedes Mal, wenn er eine Anforderung erhält, in diesem Thema.

Beispielausgabe: Beispiel-Upload erfolgreich
{ "response": { "status": "success", "s3_response": { "ResponseMetadata": { "HostId": "IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km", "RetryAttempts": 1, "HTTPStatusCode": 200, "RequestId": "79104EXAMPLEB723", "HTTPHeaders": { "content-length": "0", "x-amz-id-2": "lbbqaDVFOhMlyU3gRvAX1ZIdg8P0WkGkCSSFsYFvSwLZk3j7QZhG5EXAMPLEdd4/pEXAMPLEUqU=", "server": "AmazonS3", "x-amz-expiration": "expiry-date=\"Wed, 17 Jul 2019 00:00:00 GMT\", rule-id=\"OGZjYWY3OTgtYWI2Zi00ZDllLWE4YmQtNzMyYzEXAMPLEoUw\"", "x-amz-request-id": "79104EXAMPLEB723", "etag": "\"b9c4f172e64458a5fd674EXAMPLE5628\"", "date": "Thu, 11 Jul 2019 00:12:50 GMT", "x-amz-server-side-encryption": "AES256" } }, "bucket": "greengrass-feedback-connector-data-us-west-2", "ETag": "\"b9c4f172e64458a5fd674EXAMPLE5628\"", "Expiration": "expiry-date=\"Wed, 17 Jul 2019 00:00:00 GMT\", rule-id=\"OGZjYWY3OTgtYWI2Zi00ZDllLWE4YmQtNzMyYzEXAMPLEoUw\"", "key": "s3-key-prefix/UUID.file_ext", "ServerSideEncryption": "AES256" } }, "id": "5aaa913f-97a3-48ac-5907-18cd96b89eeb" }

Der Konnektor fügtbucketundkey-Felder auf die Antwort von Amazon S3. Weitere Informationen über die Amazon S3 S3-Antwort finden Sie unterPUT ObjectimAmazon Simple Storage Service API-Referenzaus.

Beispielausgabe: Beispiel aufgrund der Samplingstrategie verworfen
{ "response": { "status": "sample_dropped_by_strategy" }, "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3" }
Beispielausgabe: Beispiel-Upload fehlgeschlagen

Ein Fehlerstatus enthält die Fehlermeldung als Wert für error_message und die Ausnahmeklasse als Wert für error.

{ "response": { "status": "fail", "error_message": "[RequestId: 4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3] Failed to upload model input data due to exception. Model prediction will not be published. Exception type: NoSuchBucket, error: An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist", "error": "NoSuchBucket" }, "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3" }
Beispielausgabe: Anforderung aufgrund des Anforderungslimits gedrosselt
{ "response": { "status": "fail", "error_message": "Request limit has been reached (max request: 10 ). Dropping request.", "error": "Queue.Full" }, "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3" }
Themenfilter: feedback/message/prediction

Verwenden Sie dieses Thema, um auf Prognosen basierend auf hochgeladenen Daten zu achten. Auf diese Weise können Sie die Modellleistung in Echtzeit analysieren. Modellprognosen werden nur dann in diesem Thema veröffentlicht, wenn Daten erfolgreich in Amazon S3 hochgeladen wurden. Nachrichten, die in diesem Thema veröffentlicht werden, haben das JSON-Format. Sie enthalten den Link zu dem hochgeladenen Datenobjekt, die Prognose des Modells und die Metadaten in der Anforderung.

Sie können Prognoseergebnisse auch speichern und mithilfe dieser Daten Trends im Laufe der Zeit melden und analysieren. Trends können wertvolle Erkenntnisse liefern. Ein Trend zu abnehmender Genauigkeit im Zeitverlauf kann Ihnen beispielsweise helfen, zu entscheiden, ob das Modell neu geschult werden muss.

Beispielausgabe
{ "source-ref": "s3://greengrass-feedback-connector-data-us-west-2/s3-key-prefix/UUID.file_ext", "model-prediction": [ 0.5, 0.2, 0.2, 0.1 ], "config-id": "ConfigID2", "metadata": { "publish-ts": "2019-07-11 00:12:48.816752" } }
Tipp

Sie können dieIoT Analytics Konnektorum dieses Thema zu abonnieren und die Informationen an zu sendenAWS IoT Analyticsfür weitere oder historische Analysen.

Themenfilter: cloudwatch/metric/put

Dies ist das Ausgabethema, das zum Veröffentlichen von Metriken in CloudWatch verwendet wird. Für diese Funktion müssen Sie dasKonnektor CloudWatch-Metrikenaus.

Zu den Metriken gehören:

  • Die Anzahl der hochgeladenen Beispiele.

  • Die Größe der hochgeladenen Beispiele.

  • Die Anzahl der Fehler aus Uploads in Amazon S3.

  • Die Anzahl der verworfenen Beispiele basierend auf der Samplingstrategie.

  • Die Anzahl der gedrosselten Anforderungen.

Beispielausgabe: Größe der Datenprobe (veröffentlicht vor dem tatsächlichen Upload)
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 47592, "unit": "Bytes", "metricName": "SampleSize" } } }
Beispielausgabe: Beispiel-Upload erfolgreich
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleUploadSuccess" } } }
Beispielausgabe: Beispiel-Upload erfolgreich und Prognoseergebnis veröffentlicht
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleAndPredictionPublished" } } }
Beispielausgabe: Beispiel-Upload fehlgeschlagen
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleUploadFailure" } } }
Beispielausgabe: Beispiel aufgrund der Samplingstrategie verworfen
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleNotUsed" } } }
Beispielausgabe: Anforderung aufgrund des Anforderungslimits gedrosselt
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "ErrorRequestThrottled" } } }

Beispiel für die Verwendung

Im folgenden Beispiel sehen Sie eine benutzerdefinierte Lambda-Funktion, die dasAWS IoT GreengrassMachine Learning Learning-SDKum Daten an den ML Feedback-Konnektor zu senden.

Anmerkung

Sie können dieAWS IoT GreengrassSDK für Machine Learning von derAWS IoT Greengrass Seite Downloadsaus.

import json import logging import os import sys import greengrass_machine_learning_sdk as ml client = ml.client('feedback') try: feedback_config_id = os.environ["FEEDBACK_CONFIG_ID"] model_input_data_dir = os.environ["MODEL_INPUT_DIR"] model_prediction_str = os.environ["MODEL_PREDICTIONS"] model_prediction = json.loads(model_prediction_str) except Exception as e: logging.info("Failed to open environment variables. Failed with exception:{}".format(e)) sys.exit(1) try: with open(os.path.join(model_input_data_dir, os.listdir(model_input_data_dir)[0]), 'rb') as f: content = f.read() except Exception as e: logging.info("Failed to open model input directory. Failed with exception:{}".format(e)) sys.exit(1) def invoke_feedback_connector(): logging.info("Invoking feedback connector.") try: client.publish( ConfigId=feedback_config_id, ModelInput=content, ModelPrediction=model_prediction ) except Exception as e: logging.info("Exception raised when invoking feedback connector:{}".format(e)) sys.exit(1) invoke_feedback_connector() def function_handler(event, context): return

Lizenzen

Der ML-Feedback-Konnektor enthält die folgende Drittanbieter-Software/Lizenz:

Dieser Konnektor wird unter derLizenzvereinbarung für die Greengrass Core-Softwareaus.

Weitere Informationen finden Sie auch unter