Étape 3 : effectuer des inférences sur votre périphérique - Amazon SageMaker

Étape 3 : effectuer des inférences sur votre périphérique

Dans cet exemple, vous allez utiliser Boto3 pour télécharger la sortie de votre tâche de compilation sur votre appareil en périphérie. Vous allez ensuite importer le DLR, télécharger un exemple d'images à partir du jeu de données, redimensionner cette image pour qu'elle corresponde à l'entrée d'origine du modèle, puis faire une prédiction.

  1. Téléchargez votre modèle compilé depuis Amazon S3 sur votre périphérique et extrayez-le du fichier tarfile compressé.

    # 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
  2. Importez le DLR et un objet DLRModel initialisé.

    import dlr device = 'cpu' model = dlr.DLRModel('./dlr_model', device)
  3. Téléchargez une image pour l'inférence et formatez-la en fonction de la façon dont votre modèle a été entraîné.

    Pour l'exemple coco_ssd_mobilenet, vous pouvez télécharger une image depuis le jeu de données COCO, puis réformer l'image à 300x300 :

    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')
  4. Utilisez le DLR pour effectuer des inférences.

    Pour terminer, vous pouvez utiliser le DLR pour réaliser une prédiction sur l'image que vous venez de télécharger :

    out = model.run(x)

Pour d'autres exemples d'utilisation de DLR pour effectuer des inférences à partir d'un modèle néo-compilé sur un appareil en périphérie, veuillez consulter le Référentiel GitHub neo-ai-dlr.