

Avviso di fine del supporto: il 7 ottobre 2026, AWS il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [Migrate](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html) from. AWS IoT Greengrass Version 1

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connettore ML Image Classification
<a name="image-classification-connector"></a>

**avvertimento**  <a name="connectors-extended-life-phase-warning"></a>
Questo connettore è entrato nella *fase di vita prolungata* e AWS IoT Greengrass non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti alle funzionalità esistenti, patch di sicurezza o correzioni di bug. Per ulteriori informazioni, consulta [AWS IoT Greengrass Version 1 politica di manutenzione](maintenance-policy.md).

I [connettori](connectors.md) ML Image Classification forniscono un servizio di inferenza di machine learning (ML) che viene eseguito sul core. AWS IoT Greengrass Questo servizio di inferenza locale esegue la classificazione delle immagini utilizzando un modello addestrato dall'algoritmo di classificazione delle immagini SageMaker AI.

Le funzioni Lambda definite dall'utente utilizzano il Machine AWS IoT Greengrass Learning SDK per inviare richieste di inferenza al servizio di inferenza locale. Il servizio esegue l'inferenza in locale e restituisce le probabilità che l'immagine di input appartenga a categorie specifiche.

AWS IoT Greengrass fornisce le seguenti versioni di questo connettore, disponibile per più piattaforme.

------
#### [ Version 2 ]


| Connector | Descrizione e ARN | 
| --- | --- | 
| Classificazione delle immagini ML Aarch64 JTX2 |  Servizio di inferenza per la classificazione delle immagini per NVIDIA Jetson. TX2 Supporta l'accelerazione GPU. **ARN:** `arn:aws:greengrass:region::/connectors/ImageClassificationAarch64JTX2/versions/2` | 
| Classificazione delle immagini ML x86\$164 |  Servizio di inferenza di classificazione delle immagini per le piattaforme x86\$164. **ARN:** `arn:aws:greengrass:region::/connectors/ImageClassificationx86-64/versions/2` | 
| Classificazione delle immagini ML ARMv7 |  Servizio di inferenza per la classificazione delle immagini per ARMv7 piattaforme. **ARN:** `arn:aws:greengrass:region::/connectors/ImageClassificationARMv7/versions/2` | 

------
#### [ Version 1 ]


| Connector | Descrizione e ARN | 
| --- | --- | 
| Classificazione delle immagini ML Aarch64 JTX2 |  Servizio di inferenza per la classificazione delle immagini per NVIDIA Jetson. TX2 Supporta l'accelerazione GPU. **ARN:** `arn:aws:greengrass:region::/connectors/ImageClassificationAarch64JTX2/versions/1` | 
| Classificazione delle immagini ML x86\$164 |  Servizio di inferenza di classificazione delle immagini per le piattaforme x86\$164. **ARN:** `arn:aws:greengrass:region::/connectors/ImageClassificationx86-64/versions/1` | 
| Classificazione delle immagini ML Armv7 |  Servizio di inferenza di classificazione delle immagini per le piattaforme Armv7. **ARN:** `arn:aws:greengrass:region::/connectors/ImageClassificationARMv7/versions/1` | 

------

Per informazioni sulle modifiche di ogni versione, consulta [Changelog](#image-classification-connector-changelog).

## Requisiti
<a name="image-classification-connector-req"></a>

Questi connettori presentano i seguenti requisiti:

------
#### [ Version 2 ]
+ AWS IoT Greengrass Core Software v1.9.3 o versione successiva.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/) versione 3.7 o 3.8 installata sul dispositivo principale e aggiunta alla variabile di ambiente PATH.
**Nota**  <a name="use-runtime-py3.8"></a>
Per usare Python 3.8, esegui il seguente comando per creare un collegamento simbolico dalla cartella di installazione predefinita di Python 3.7 ai binari Python 3.8 installati.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Questo configura il dispositivo in modo che soddisfi il requisito Python per AWS IoT Greengrass.
+ <a name="req-image-classification-framework"></a>Dipendenze per il framework Apache installato sul dispositivo principale. MXNet Per ulteriori informazioni, consulta [Installazione MXNet delle dipendenze sul core AWS IoT Greengrass](#image-classification-connector-config).
+ <a name="req-image-classification-resource"></a>Una [risorsa ML](ml-inference.md#ml-resources) del gruppo Greengrass che fa riferimento a una fonte di modelli di SageMaker intelligenza artificiale. Questo modello deve essere addestrato dall'algoritmo di classificazione delle immagini SageMaker AI. Per ulteriori informazioni, consulta [Algoritmo di classificazione delle immagini](https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html) nella *Amazon SageMaker AI Developer Guide*.
+ <a name="req-image-classification-feedback"></a>Il [connettore ML Feedback](ml-feedback-connector.md) aggiunto al gruppo Greengrass e configurato. Questo è obbligatorio solo se desideri utilizzare il connettore per caricare i dati di input del modello e pubblicare le previsioni in un argomento MQTT.
+ <a name="req-image-classification-policy"></a>Il [ruolo del gruppo Greengrass](group-role.md) è configurato per consentire l'`sagemaker:DescribeTrainingJob`azione sul lavoro di formazione target, come mostrato nel seguente esempio di politica IAM.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sagemaker:DescribeTrainingJob"
              ],
              "Resource": "arn:aws:sagemaker:us-east-1:123456789012:training-job/training-job-name"
          }
      ]
  }
  ```

------

  <a name="set-up-group-role"></a>Per il requisito del ruolo di gruppo, è necessario configurare il ruolo in modo da concedere le autorizzazioni necessarie e assicurarsi che il ruolo sia stato aggiunto al gruppo. Per ulteriori informazioni, consulta [Gestione del ruolo del gruppo Greengrass (console)](group-role.md#manage-group-role-console) o [Gestione del ruolo del gruppo Greengrass (CLI)](group-role.md#manage-group-role-cli).

  Puoi concedere alle risorse un accesso granulare o condizionale (ad esempio, utilizzando uno schema di denominazione con il carattere jolly \$1). Se in futuro cambierai il tipo di formazione desiderato, assicurati di aggiornare il ruolo del gruppo.
+ AWS IoT Greengrass Per interagire con questo connettore è necessario [Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) v1.1.0.

------
#### [ Version 1 ]
+ AWS IoT Greengrass Core Software v1.7 o versione successiva.
+ [Python](https://www.python.org/) versione 2.7 installato sul dispositivo principale e aggiunto alla variabile di ambiente PATH.
+ <a name="req-image-classification-framework"></a>Dipendenze per il MXNet framework Apache installato sul dispositivo principale. Per ulteriori informazioni, consulta [Installazione MXNet delle dipendenze sul core AWS IoT Greengrass](#image-classification-connector-config).
+ <a name="req-image-classification-resource"></a>Una [risorsa ML](ml-inference.md#ml-resources) del gruppo Greengrass che fa riferimento a una fonte di modelli di SageMaker intelligenza artificiale. Questo modello deve essere addestrato dall'algoritmo di classificazione delle immagini SageMaker AI. Per ulteriori informazioni, consulta [Algoritmo di classificazione delle immagini](https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html) nella *Amazon SageMaker AI Developer Guide*.
+ <a name="req-image-classification-policy"></a>Il [ruolo del gruppo Greengrass](group-role.md) è configurato per consentire l'`sagemaker:DescribeTrainingJob`azione sul lavoro di formazione target, come mostrato nel seguente esempio di politica IAM.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sagemaker:DescribeTrainingJob"
              ],
              "Resource": "arn:aws:sagemaker:us-east-1:123456789012:training-job/training-job-name"
          }
      ]
  }
  ```

------

  <a name="set-up-group-role"></a>Per il requisito del ruolo di gruppo, è necessario configurare il ruolo in modo da concedere le autorizzazioni necessarie e assicurarsi che il ruolo sia stato aggiunto al gruppo. Per ulteriori informazioni, consulta [Gestione del ruolo del gruppo Greengrass (console)](group-role.md#manage-group-role-console) o [Gestione del ruolo del gruppo Greengrass (CLI)](group-role.md#manage-group-role-cli).

  Puoi concedere alle risorse un accesso granulare o condizionale (ad esempio, utilizzando uno schema di denominazione con il carattere jolly \$1). Se in futuro cambierai il tipo di formazione desiderato, assicurati di aggiornare il ruolo del gruppo.
+ AWS IoT Greengrass Per interagire con questo connettore è necessario [Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) v1.0.0 o versione successiva.

------

## Parametri del connettore
<a name="image-classification-connector-param"></a>

Questi connettori forniscono i seguenti parametri.

------
#### [ Version 2 ]

`MLModelDestinationPath`  <a name="param-image-classification-mdlpath"></a>
Il percorso locale assoluto della risorsa ML all'interno dell'ambiente Lambda. Si tratta del percorso di destinazione specificato per la risorsa ML.  
Se hai creato la risorsa ML nella console, si tratta del percorso locale.
Nome visualizzato nella AWS IoT console: percorso di **destinazione del modello**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `.+`

`MLModelResourceId`  <a name="param-image-classification-mdlresourceid"></a>
L'ID della risorsa ML che fa riferimento al modello di origine.  
Nome visualizzato nella AWS IoT console: risorsa **SageMaker ARN del lavoro**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `[a-zA-Z0-9:_-]+`

`MLModelSageMakerJobArn`  <a name="param-image-classification-mdljobarn"></a>
L'ARN del job di formazione sull' SageMaker intelligenza artificiale che rappresenta la fonte del modello SageMaker AI. Il modello deve essere addestrato dall'algoritmo di classificazione delle immagini SageMaker AI.  
Nome visualizzato nella AWS IoT console: **SageMaker job ARN**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `^arn:aws:sagemaker:[a-zA-Z0-9-]+:[0-9]+:training-job/[a-zA-Z0-9][a-zA-Z0-9-]+$`

`LocalInferenceServiceName`  <a name="param-image-classification-svcname"></a>
Il nome del servizio di inferenza locale. Le funzioni Lambda definite dall'utente richiamano il servizio passando il nome alla funzione `invoke_inference_service` del Machine AWS IoT Greengrass Learning SDK. Per vedere un esempio, consulta [Esempio di utilizzo](#image-classification-connector-usage).  
**Nome visualizzato nella AWS IoT console: nome del servizio di inferenza locale**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `[a-zA-Z0-9][a-zA-Z0-9-]{1,62}`

`LocalInferenceServiceTimeoutSeconds`  <a name="param-image-classification-svctimeout"></a>
L'intervallo di tempo (in secondi) prima che la richiesta di inferenza venga terminata. Il valore minimo è 1.  
Nome visualizzato nella AWS IoT console: **Timeout (secondo)**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `[1-9][0-9]*`

`LocalInferenceServiceMemoryLimitKB`  <a name="param-image-classification-svcmemorylimit"></a>
La quantità di memoria (in KB) a cui ha accesso il servizio. Il valore minimo è 1.  
Nome visualizzato nella AWS IoT console: **limite di memoria (KB)**  
Obbligatorio: `true`  
Tipo: `string`  
Schema valido: `[1-9][0-9]*`

`GPUAcceleration`  <a name="param-image-classification-gpuacceleration"></a>
Il contesto di calcolo della CPU o GPU (accelerata). Questa proprietà si applica solo al JTX2 connettore ML Image Classification Aarch64.  
**Nome visualizzato nella AWS IoT console: accelerazione GPU**  
Obbligatorio: `true`  
Tipo: `string`  
Valori validi: `CPU` o `GPU`

`MLFeedbackConnectorConfigId`  <a name="param-image-classification-feedbackconfigid"></a>
L'ID della configurazione di feedback da utilizzare per caricare i dati di input del modello. Deve corrispondere all'ID di una configurazione di feedback definita per il [connettore ML Feedback](ml-feedback-connector.md).  
Questo parametro è obbligatorio solo se desideri utilizzare il connettore ML Feedback per caricare i dati di input del modello e pubblicare le previsioni in un argomento MQTT.  
Nome visualizzato nella AWS IoT console: ID di configurazione del **connettore ML Feedback**  
Obbligatorio: `false`  
Tipo: `string`  
Modello valido: `^$|^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$`

------
#### [ Version 1 ]

`MLModelDestinationPath`  <a name="param-image-classification-mdlpath"></a>
Il percorso locale assoluto della risorsa ML all'interno dell'ambiente Lambda. Si tratta del percorso di destinazione specificato per la risorsa ML.  
Se hai creato la risorsa ML nella console, si tratta del percorso locale.
Nome visualizzato nella AWS IoT console: percorso di **destinazione del modello**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `.+`

`MLModelResourceId`  <a name="param-image-classification-mdlresourceid"></a>
L'ID della risorsa ML che fa riferimento al modello di origine.  
Nome visualizzato nella AWS IoT console: risorsa **SageMaker ARN del lavoro**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `[a-zA-Z0-9:_-]+`

`MLModelSageMakerJobArn`  <a name="param-image-classification-mdljobarn"></a>
L'ARN del job di formazione sull' SageMaker intelligenza artificiale che rappresenta la fonte del modello SageMaker AI. Il modello deve essere addestrato dall'algoritmo di classificazione delle immagini SageMaker AI.  
Nome visualizzato nella AWS IoT console: **SageMaker job ARN**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `^arn:aws:sagemaker:[a-zA-Z0-9-]+:[0-9]+:training-job/[a-zA-Z0-9][a-zA-Z0-9-]+$`

`LocalInferenceServiceName`  <a name="param-image-classification-svcname"></a>
Il nome del servizio di inferenza locale. Le funzioni Lambda definite dall'utente richiamano il servizio passando il nome alla funzione `invoke_inference_service` del Machine AWS IoT Greengrass Learning SDK. Per vedere un esempio, consulta [Esempio di utilizzo](#image-classification-connector-usage).  
**Nome visualizzato nella AWS IoT console: nome del servizio di inferenza locale**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `[a-zA-Z0-9][a-zA-Z0-9-]{1,62}`

`LocalInferenceServiceTimeoutSeconds`  <a name="param-image-classification-svctimeout"></a>
L'intervallo di tempo (in secondi) prima che la richiesta di inferenza venga terminata. Il valore minimo è 1.  
Nome visualizzato nella AWS IoT console: **Timeout (secondo)**  
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `[1-9][0-9]*`

`LocalInferenceServiceMemoryLimitKB`  <a name="param-image-classification-svcmemorylimit"></a>
La quantità di memoria (in KB) a cui ha accesso il servizio. Il valore minimo è 1.  
Nome visualizzato nella AWS IoT console: **limite di memoria (KB)**  
Obbligatorio: `true`  
Tipo: `string`  
Schema valido: `[1-9][0-9]*`

`GPUAcceleration`  <a name="param-image-classification-gpuacceleration"></a>
Il contesto di calcolo della CPU o GPU (accelerata). Questa proprietà si applica solo al JTX2 connettore ML Image Classification Aarch64.  
**Nome visualizzato nella AWS IoT console: accelerazione GPU**  
Obbligatorio: `true`  
Tipo: `string`  
Valori validi: `CPU` o `GPU`

------

### Esempio di creazione di un connettore (AWS CLI)
<a name="image-classification-connector-create"></a>

I seguenti comandi CLI creano una `ConnectorDefinition` versione iniziale che contiene un connettore ML Image Classification.

**Esempio: istanza CPU**  
Questo esempio crea un'istanza del connettore ML Image Classification ARMv7l.  

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MyImageClassificationConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/ImageClassificationARMv7/versions/2",
            "Parameters": {
                "MLModelDestinationPath": "/path-to-model",
                "MLModelResourceId": "my-ml-resource",
                "MLModelSageMakerJobArn": "arn:aws:sagemaker:us-west-2:123456789012:training-job:MyImageClassifier",
                "LocalInferenceServiceName": "imageClassification",
                "LocalInferenceServiceTimeoutSeconds": "10",
                "LocalInferenceServiceMemoryLimitKB": "500000",
                "MLFeedbackConnectorConfigId": "MyConfig0"
            }
        }
    ]
}'
```

**Esempio: istanza GPU**  
Questo esempio crea un'istanza del JTX2 connettore ML Image Classification Aarch64, che supporta l'accelerazione GPU su una scheda NVIDIA Jetson. TX2   

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MyImageClassificationConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/ImageClassificationAarch64JTX2/versions/2",
            "Parameters": {
                "MLModelDestinationPath": "/path-to-model",
                "MLModelResourceId": "my-ml-resource",
                "MLModelSageMakerJobArn": "arn:aws:sagemaker:us-west-2:123456789012:training-job:MyImageClassifier",
                "LocalInferenceServiceName": "imageClassification",
                "LocalInferenceServiceTimeoutSeconds": "10",
                "LocalInferenceServiceMemoryLimitKB": "500000",
                "GPUAcceleration": "GPU",
                "MLFeedbackConnectorConfigId": "MyConfig0"
            }
        }
    ]
}'
```

**Nota**  
La funzione Lambda di questi connettori ha un ciclo di vita di [lunga durata](lambda-functions.md#lambda-lifecycle).

**Nella AWS IoT Greengrass console, puoi aggiungere un connettore dalla pagina Connettori del gruppo.** Per ulteriori informazioni, consulta [Nozioni di base sui connettori Greengrass (console)](connectors-console.md).

## Dati di input
<a name="image-classification-connector-data-input"></a>

 Questi connettori accettano un file di immagine come input. I file di immagine di input devono essere in formato `png` o `jpeg`. Per ulteriori informazioni, consulta [Esempio di utilizzo](#image-classification-connector-usage). 

Questi connettori non accettano messaggi MQTT come dati di input.

## Dati di output
<a name="image-classification-connector-data-output"></a>

Questi connettori restituiscono una previsione formattata per l'oggetto identificato nell'immagine di input:

```
[0.3,0.1,0.04,...]
```

La previsione contiene un elenco di valori che corrispondono alle categorie utilizzate nel set di dati di training durante il training del modello. Ogni valore rappresenta la probabilità che l'immagine rientri nella categoria corrispondente. La categoria con la probabilità più alta è la previsione dominante.

Questi connettori non pubblicano messaggi MQTT come dati di output.

## Esempio di utilizzo
<a name="image-classification-connector-usage"></a>

L'esempio seguente della funzione Lambda utilizza il [AWS IoT Greengrass Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) per interagire con un connettore ML Image Classification.

**Nota**  
 Puoi scaricare l'SDK dalla pagina dei download di [AWS IoT Greengrass Machine Learning SDK](what-is-gg.md#gg-ml-sdk-download).

In questo esempio viene inizializzato un client SDK e viene chiamata in modo sincrono la funzione `invoke_inference_service` di SDK per richiamare il servizio di inferenza locale. Trasferisce il tipo di algoritmo, il nome del servizio, il tipo di immagine e il contenuto dell'immagine. Quindi, l'esempio analizza la risposta del servizio per ottenere i risultati di probabilità (previsioni).

------
#### [ Python 3.7 ]

```
import logging
from threading import Timer

import numpy as np

import greengrass_machine_learning_sdk as ml

# We assume the inference input image is provided as a local file
# to this inference client Lambda function.
with open('/test_img/test.jpg', 'rb') as f:
    content = bytearray(f.read())

client = ml.client('inference')

def infer():
    logging.info('invoking Greengrass ML Inference service')

    try:
        resp = client.invoke_inference_service(
            AlgoType='image-classification',
            ServiceName='imageClassification',
            ContentType='image/jpeg',
            Body=content
        )
    except ml.GreengrassInferenceException as e:
        logging.info('inference exception {}("{}")'.format(e.__class__.__name__, e))
        return
    except ml.GreengrassDependencyException as e:
        logging.info('dependency exception {}("{}")'.format(e.__class__.__name__, e))
        return

    logging.info('resp: {}'.format(resp))
    predictions = resp['Body'].read().decode("utf-8")
    logging.info('predictions: {}'.format(predictions))
    
    # The connector output is in the format: [0.3,0.1,0.04,...]
    # Remove the '[' and ']' at the beginning and end.
    predictions = predictions[1:-1]
    count = len(predictions.split(','))
    predictions_arr = np.fromstring(predictions, count=count, sep=',')

    # Perform business logic that relies on the predictions_arr, which is an array
    # of probabilities.
    
    # Schedule the infer() function to run again in one second.
    Timer(1, infer).start()
    return

infer()

def function_handler(event, context):
    return
```

------
#### [ Python 2.7 ]

```
import logging
from threading import Timer

import numpy

import greengrass_machine_learning_sdk as gg_ml

# The inference input image.
with open("/test_img/test.jpg", "rb") as f:
    content = f.read()

client = gg_ml.client("inference")


def infer():
    logging.info("Invoking Greengrass ML Inference service")

    try:
        resp = client.invoke_inference_service(
            AlgoType="image-classification",
            ServiceName="imageClassification",
            ContentType="image/jpeg",
            Body=content,
        )
    except gg_ml.GreengrassInferenceException as e:
        logging.info('Inference exception %s("%s")', e.__class__.__name__, e)
        return
    except gg_ml.GreengrassDependencyException as e:
        logging.info('Dependency exception %s("%s")', e.__class__.__name__, e)
        return

    logging.info("Response: %s", resp)
    predictions = resp["Body"].read()
    logging.info("Predictions: %s", predictions)

    # The connector output is in the format: [0.3,0.1,0.04,...]
    # Remove the '[' and ']' at the beginning and end.
    predictions = predictions[1:-1]
    predictions_arr = numpy.fromstring(predictions, sep=",")
    logging.info("Split into %s predictions.", len(predictions_arr))

    # Perform business logic that relies on predictions_arr, which is an array
    # of probabilities.

    # Schedule the infer() function to run again in one second.
    Timer(1, infer).start()


infer()


# In this example, the required AWS Lambda handler is never called.
def function_handler(event, context):
    return
```

------

La `invoke_inference_service` funzione nel AWS IoT Greengrass Machine Learning SDK accetta i seguenti argomenti.


| Argomento | Description | 
| --- | --- | 
| `AlgoType` | Il nome del tipo di algoritmo da utilizzare per l'inferenza. Attualmente è supportato solo `image-classification`. Obbligatorio: `true` Tipo: `string` Valori validi: `image-classification` | 
| `ServiceName` | Il nome del servizio di inferenza locale. Utilizza il nome specificato per il parametro `LocalInferenceServiceName` al momento della configurazione del connettore. Obbligatorio: `true` Tipo: `string` | 
| `ContentType` | Il tipo mime dell'immagine di input. Obbligatorio: `true` Tipo: `string` Valori validi: `image/jpeg, image/png` | 
| `Body` | Il contenuto del file immagine di input. Obbligatorio: `true` Tipo: `binary` | 

## Installazione MXNet delle dipendenze sul core AWS IoT Greengrass
<a name="image-classification-connector-config"></a>

Per utilizzare un connettore ML Image Classification, è necessario installare le dipendenze per il MXNet framework Apache sul dispositivo principale. I connettori utilizzano il framework per servire il modello ML.

**Nota**  
Questi connettori sono forniti in bundle con una MXNet libreria precompilata, quindi non è necessario installare il MXNet framework sul dispositivo principale. 

AWS IoT Greengrass fornisce script per installare le dipendenze per le seguenti piattaforme e dispositivi comuni (o da utilizzare come riferimento per l'installazione). Se utilizzi una piattaforma o un dispositivo diverso, consulta la [MXNet documentazione](https://mxnet.apache.org/) per la configurazione.

Prima di installare le MXNet dipendenze, assicurati che le [librerie di sistema](#image-classification-connector-logging) richieste (con le versioni minime specificate) siano presenti sul dispositivo.

------
#### [ NVIDIA Jetson TX2 ]

1. Installa CUDA Toolkit 9.0 e cuDNN 7.0. Puoi seguire le istruzioni di [Configurazione di altri dispositivi](setup-filter.other.md) nel tutorial Nozioni di base.

1. Abilita i repository universali in modo che il connettore sia in grado di installare l'open software gestito dalla community. Per ulteriori informazioni, consulta [Repository/Ubuntu](https://help.ubuntu.com/community/Repositories/Ubuntu) nella documentazione Ubuntu.

   1. Apri il file `/etc/apt/sources.list`.

   1. Assicurati che le seguenti righe non presentino commenti.

      ```
      deb http://ports.ubuntu.com/ubuntu-ports/ xenial universe
      deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial universe
      deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
      deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
      ```

1. Salva una copia del seguente script di installazione nel file `nvidiajtx2.sh` del dispositivo core.

------
#### [ Python 3.7 ]

   ```
   #!/bin/bash
   set -e
   
   echo "Installing dependencies on the system..."
   echo 'Assuming that universe repos are enabled and checking dependencies...'
   apt-get -y update
   apt-get -y dist-upgrade
   apt-get install -y liblapack3 libopenblas-dev liblapack-dev libatlas-base-dev
   apt-get install -y python3.7 python3.7-dev
   
   python3.7 -m pip install --upgrade pip
   python3.7 -m pip install numpy==1.15.0
   python3.7 -m pip install opencv-python || echo 'Error: Unable to install OpenCV with pip on this platform. Try building the latest OpenCV from source (https://github.com/opencv/opencv).'
   
   echo 'Dependency installation/upgrade complete.'
   ```

**Nota**  
<a name="opencv-build-from-source"></a>Se [OpenCV](https://github.com/opencv/opencv) non viene installato correttamente utilizzando questo script, puoi provare a compilare dall'origine. Per ulteriori informazioni, consulta [ Installazione in Linux](https://docs.opencv.org/4.1.0/d7/d9f/tutorial_linux_install.html) nella documentazione di OpenCV o fai riferimento ad altre risorse online per la tua piattaforma.

------
#### [ Python 2.7 ]

   ```
   #!/bin/bash
   set -e
   
   echo "Installing dependencies on the system..."
   echo 'Assuming that universe repos are enabled and checking dependencies...'
   apt-get -y update
   apt-get -y dist-upgrade
   apt-get install -y liblapack3 libopenblas-dev liblapack-dev libatlas-base-dev python-dev
   
   echo 'Install latest pip...'
   wget https://bootstrap.pypa.io/get-pip.py
   python get-pip.py
   rm get-pip.py
   
   pip install numpy==1.15.0 scipy
   
   echo 'Dependency installation/upgrade complete.'
   ```

------

1. Dalla directory in cui hai salvato il file, esegui il seguente comando:

   ```
   sudo nvidiajtx2.sh
   ```

------
#### [ x86\$164 (Ubuntu or Amazon Linux)  ]

1. Salva una copia del seguente script di installazione nel file `x86_64.sh` del dispositivo core.

------
#### [ Python 3.7 ]

   ```
   #!/bin/bash
   set -e
   
   echo "Installing dependencies on the system..."
   
   release=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
   
   if [ "$release" == '"Ubuntu"' ]; then
     # Ubuntu. Supports EC2 and DeepLens. DeepLens has all the dependencies installed, so
     # this is mostly to prepare dependencies on Ubuntu EC2 instance.
     apt-get -y update
     apt-get -y dist-upgrade
   
     apt-get install -y libgfortran3 libsm6 libxext6 libxrender1
     apt-get install -y python3.7 python3.7-dev
   elif [ "$release" == '"Amazon Linux"' ]; then
     # Amazon Linux. Expect python to be installed already
     yum -y update
     yum -y upgrade
   
     yum install -y compat-gcc-48-libgfortran libSM libXrender libXext
   else
     echo "OS Release not supported: $release"
     exit 1
   fi
   
   python3.7 -m pip install --upgrade pip
   python3.7 -m pip install numpy==1.15.0
   python3.7 -m pip install opencv-python || echo 'Error: Unable to install OpenCV with pip on this platform. Try building the latest OpenCV from source (https://github.com/opencv/opencv).'
   
   echo 'Dependency installation/upgrade complete.'
   ```

**Nota**  
<a name="opencv-build-from-source"></a>Se [OpenCV](https://github.com/opencv/opencv) non viene installato correttamente utilizzando questo script, puoi provare a compilare dall'origine. Per ulteriori informazioni, consulta [ Installazione in Linux](https://docs.opencv.org/4.1.0/d7/d9f/tutorial_linux_install.html) nella documentazione di OpenCV o fai riferimento ad altre risorse online per la tua piattaforma.

------
#### [ Python 2.7 ]

   ```
   #!/bin/bash
   set -e
   
   echo "Installing dependencies on the system..."
   
   release=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
   
   if [ "$release" == '"Ubuntu"' ]; then
     # Ubuntu. Supports EC2 and DeepLens. DeepLens has all the dependencies installed, so
     # this is mostly to prepare dependencies on Ubuntu EC2 instance.
     apt-get -y update
     apt-get -y dist-upgrade
   
     apt-get install -y libgfortran3 libsm6 libxext6 libxrender1 python-dev python-pip
   elif [ "$release" == '"Amazon Linux"' ]; then
     # Amazon Linux. Expect python to be installed already
     yum -y update
     yum -y upgrade
   
     yum install -y compat-gcc-48-libgfortran libSM libXrender libXext python-pip
   else
     echo "OS Release not supported: $release"
     exit 1
   fi
   
   pip install numpy==1.15.0 scipy opencv-python
   
   echo 'Dependency installation/upgrade complete.'
   ```

------

1. Dalla directory in cui hai salvato il file, esegui il comando seguente:

   ```
   sudo x86_64.sh
   ```

------
#### [ Armv7 (Raspberry Pi) ]

1. Salva una copia del seguente script di installazione nel file `armv7l.sh` del dispositivo core.

------
#### [ Python 3.7 ]

   ```
   #!/bin/bash
   set -e
   
   echo "Installing dependencies on the system..."
   
   apt-get update
   apt-get -y upgrade
   
   apt-get install -y liblapack3 libopenblas-dev liblapack-dev
   apt-get install -y python3.7 python3.7-dev
   
   python3.7 -m pip install --upgrade pip
   python3.7 -m pip install numpy==1.15.0
   python3.7 -m pip install opencv-python || echo 'Error: Unable to install OpenCV with pip on this platform. Try building the latest OpenCV from source (https://github.com/opencv/opencv).'
   
   echo 'Dependency installation/upgrade complete.'
   ```

**Nota**  
<a name="opencv-build-from-source"></a>Se [OpenCV](https://github.com/opencv/opencv) non viene installato correttamente utilizzando questo script, puoi provare a compilare dall'origine. Per ulteriori informazioni, consulta [ Installazione in Linux](https://docs.opencv.org/4.1.0/d7/d9f/tutorial_linux_install.html) nella documentazione di OpenCV o fai riferimento ad altre risorse online per la tua piattaforma.

------
#### [ Python 2.7 ]

   ```
   #!/bin/bash
   set -e
   
   echo "Installing dependencies on the system..."
   
   apt-get update
   apt-get -y upgrade
   
   apt-get install -y liblapack3 libopenblas-dev liblapack-dev python-dev
   
   # python-opencv depends on python-numpy. The latest version in the APT repository is python-numpy-1.8.2
   # This script installs python-numpy first so that python-opencv can be installed, and then install the latest
   # numpy-1.15.x with pip
   apt-get install -y python-numpy python-opencv
   dpkg --remove --force-depends python-numpy
   
   echo 'Install latest pip...'
   wget https://bootstrap.pypa.io/get-pip.py
   python get-pip.py
   rm get-pip.py
   
   pip install --upgrade numpy==1.15.0 picamera scipy
   
   echo 'Dependency installation/upgrade complete.'
   ```

------

1. Dalla directory in cui hai salvato il file, esegui il comando seguente:

   ```
   sudo bash armv7l.sh
   ```
**Nota**  
Su un Raspberry Pi, l'utilizzo di `pip` per installare dipendenze di machine learning è un'operazione con elevati requisiti di memoria che può esaurire la memoria del dispositivo e causarne il blocco. Per risolvere il problema, è possibile aumentare temporaneamente la dimensione di swap:  
In `/etc/dphys-swapfile`, aumenta il valore della variabile `CONF_SWAPSIZE` e quindi esegui il comando seguente per riavviare `dphys-swapfile`.  

   ```
   /etc/init.d/dphys-swapfile restart
   ```

------

## Registrazione e risoluzione dei problemi
<a name="image-classification-connector-logging"></a>

A seconda delle impostazioni del gruppo, i registri degli eventi e degli errori vengono scritti in CloudWatch Logs, nel file system locale o in entrambi. I log di questo connettore utilizzano il prefisso `LocalInferenceServiceName`. Se il connettore si comporta inaspettatamente, controlla i log del connettore. Questi di solito contengono utili informazioni di debug, ad esempio una dipendenza della libreria ML mancante o la causa di un errore di avvio del connettore.

Se il AWS IoT Greengrass gruppo è configurato per scrivere registri locali, il connettore scrive i file di registro su. `greengrass-root/ggc/var/log/user/region/aws/` Per ulteriori informazioni sulla registrazione di Greengrass, vedere. [Monitoraggio con AWS IoT Greengrass registri](greengrass-logs-overview.md)

Utilizzate le seguenti informazioni per risolvere i problemi relativi ai connettori ML Image Classification.

**Librerie di sistema richieste**

Le schede seguenti elencano le librerie di sistema richieste per ogni connettore ML Image Classification.

------
#### [ ML Image Classification Aarch64 JTX2 ]


| Libreria | Versione minima | 
| --- | --- | 
| ld-linux-aarch64.so.1 | GLIBC\$12.17 | 
| libc.so.6 | GLIBC\$12.17 | 
| libcublas.so.9.0 | non applicabile | 
| libcudart.so.9.0 | non applicabile | 
| libcudnn.so.7 | non applicabile | 
| libcufft.so.9.0 | non applicabile | 
| libcurand.so.9.0 | non applicabile | 
| libcusolver.so.9.0 | non applicabile | 
| libgcc\$1s.so.1 | GCC\$14.2.0 | 
| libgomp.so.1 | GOMP\$14.0, OMP\$11.0 | 
| libm.so.6 | GLIBC\$12.23 | 
| libpthread.so.0 | GLIBC\$12.17 | 
| librt.so.1 | GLIBC\$12.17 | 
| libstdc\$1\$1.so.6 | GLIBCXX\$13.4.21, CXXABI\$11.3.8 | 

------
#### [ ML Image Classification x86\$164 ]


| Libreria | Versione minima | 
| --- | --- | 
| ld-linux-x86-64.so.2 | GCC\$14.0.0 | 
| libc.so.6 | GLIBC\$12.4 | 
| libgfortran.so.3 | GFORTRAN\$11.0 | 
| libm.so.6 | GLIBC\$12.23 | 
| libpthread.so.0 | GLIBC\$12.2.5 | 
| librt.so.1 | GLIBC\$12.2.5 | 
| libstdc\$1\$1.so.6 | CXXABI\$11.3.8, GLIBCXX\$13.4.21 | 

------
#### [ ML Image Classification Armv7 ]


| Libreria | Versione minima | 
| --- | --- | 
| ld-linux-armhf.so.3 | GLIBC\$12.4 | 
| libc.so.6 | GLIBC\$12.7 | 
| libgcc\$1s.so.1 | GCC\$14.0.0 | 
| libgfortran.so.3 | GFORTRAN\$11.0 | 
| libm.so.6 | GLIBC\$12.4 | 
| libpthread.so.0 | GLIBC\$12.4 | 
| librt.so.1 | GLIBC\$12.4 | 
| libstdc\$1\$1.so.6 | CXXABI\$11.3.8, CXXABI\$1ARM\$11.3.3, GLIBCXX\$13.4.20 | 

------

**Problemi**


| Caratteristiche | Soluzione | 
| --- | --- | 
|  In un Raspberry Pi, il seguente messaggio di errore viene registrato e non si sta utilizzando la fotocamera: `Failed to initialize libdc1394`   |  Per disabilitare il driver, esegui il seguente comando: <pre>sudo ln /dev/null /dev/raw1394</pre> Questa operazione è effimera e il collegamento simbolico scompare dopo il riavvio. Consulta il manuale di distribuzione del sistema operativo per ulteriori informazioni su come creare automaticamente il link al riavvio.  | 

## Licenze
<a name="image-classification-connector-license"></a>

I connettori ML Image Classification includono i seguenti software/licenze di terze parti:<a name="boto-3-licenses"></a>
+ [AWS SDK per Python (Boto3)](https://pypi.org/project/boto3/)/Apache License 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache License 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF License
+ [docutils](https://pypi.org/project/docutils/)/BSD License, GNU General Public License (GPL), Python Software Foundation License, Public Domain
+ [jmespath](https://pypi.org/project/jmespath/)/MIT License
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache License 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT License
+ [Deep Neural Network Library (DNNL)](https://github.com/intel/mkl-dnn)/Apache License 2.0
+ [OpenMP\$1 Runtime Library](https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/optimization-and-programming-guide/openmp-support/openmp-library-support/openmp-run-time-library-routines.html)/Consulta [Libreria di licenze di Intel OpenMP Runtime](#openmp-license).
+ [mxnet](https://pypi.org/project/mxnet/)/Apache License 2.0
+ <a name="six-license"></a>[six](https://github.com/benjaminp/six)/MIT

**Libreria di licenze di Intel OpenMP Runtime**. Il runtime Intel® OpenMP\$1 è dotato di doppia licenza, con una licenza commerciale (COM) come parte dei prodotti Intel® Parallel Studio XE Suite e una licenza open source BSD (OSS).

Questo connettore è rilasciato ai sensi del contratto di [licenza del software Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Changelog
<a name="image-classification-connector-changelog"></a>

La tabella seguente descrive le modifiche apportate a ciascuna versione del connettore.


| Versione | Modifiche | 
| --- | --- | 
| 2 | È stato aggiunto il `MLFeedbackConnectorConfigId` parametro per supportare l'uso del [connettore ML Feedback](ml-feedback-connector.md) per caricare i dati di input del modello, pubblicare previsioni su un argomento MQTT e pubblicare metriche su Amazon. CloudWatch  | 
| 1 | Versione iniziale.  | 

<a name="one-conn-version"></a>Un gruppo Greengrass può contenere una sola versione del connettore alla volta. Per informazioni sull'aggiornamento di una versione del connettore, consulta [Aggiornamento delle versioni dei connettori](connectors.md#upgrade-connector-versions).

## Consulta anche
<a name="image-classification-connector-see-also"></a>
+ [Integrazione con servizi e protocolli tramite i connettori Greengrass](connectors.md)
+ [Nozioni di base sui connettori Greengrass (console)](connectors-console.md)
+ [Nozioni di base sui connettori Greengrass (CLI)](connectors-cli.md)
+ [Esecuzione dell'inferenza di Machine Learning](ml-inference.md)
+ [Algoritmo di classificazione delle immagini](https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html) nella *Amazon SageMaker AI Developer Guide*