Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo

Η ανάπτυξη υψηλής ποιότητας, εκπαιδευμένων μοντέλων μηχανικής μάθησης (ML) για την εκτέλεση συμπερασμάτων είτε κατά παρτίδες είτε σε πραγματικό χρόνο είναι ένα κρίσιμο κομμάτι για να προσφέρουμε αξία στους πελάτες. Ωστόσο, η διαδικασία πειραματισμού ML μπορεί να είναι κουραστική - υπάρχουν πολλές προσεγγίσεις που απαιτούν σημαντικό χρόνο για να εφαρμοστούν. Γι' αυτό προεκπαιδευμένα μοντέλα ML όπως αυτά που παρέχονται στο PyTorch Model Zoo είναι τόσο εξυπηρετικοί. Amazon Sage Maker παρέχει μια ενοποιημένη διεπαφή για να πειραματιστείτε με διαφορετικά μοντέλα ML και το PyTorch Model Zoo μας επιτρέπει να ανταλλάσσουμε εύκολα τα μοντέλα μας με τυποποιημένο τρόπο.

Αυτή η ανάρτηση ιστολογίου δείχνει πώς να κάνετε συμπέρασμα ML χρησιμοποιώντας ένα μοντέλο ανίχνευσης αντικειμένων από το PyTorch Model Zoo στο SageMaker. Τα προεκπαιδευμένα μοντέλα ML από το PyTorch Model Zoo είναι έτοιμα και μπορούν εύκολα να χρησιμοποιηθούν ως μέρος των εφαρμογών ML. Ρύθμιση αυτών των μοντέλων ML ως τελικό σημείο του SageMaker ή Μετασχηματισμός παρτίδας SageMaker Η εργασία για online ή offline συμπέρασμα είναι εύκολη με τα βήματα που περιγράφονται σε αυτήν την ανάρτηση ιστολογίου. Θα χρησιμοποιήσουμε α Ταχύτερο R-CNN μοντέλο ανίχνευσης αντικειμένων για την πρόβλεψη οριοθέτησης πλαισίων για προκαθορισμένες κατηγορίες αντικειμένων.

Ακολουθούμε ένα παράδειγμα από άκρο σε άκρο, από τη φόρτωση των βαρών του μοντέλου ανίχνευσης αντικειμένων Faster R-CNN, έως την αποθήκευση τους σε Υπηρεσία απλής αποθήκευσης Amazon (Amazon S3) bucket, και για τη σύνταξη ενός αρχείου σημείου εισόδου και την κατανόηση των βασικών παραμέτρων στο PyTorchModel API. Τέλος, θα αναπτύξουμε το μοντέλο ML, θα εκτελέσουμε συμπέρασμα σε αυτό χρησιμοποιώντας το SageMaker Batch Transform και θα επιθεωρήσουμε την έξοδο του μοντέλου ML και θα μάθουμε πώς να ερμηνεύουμε τα αποτελέσματα. Αυτή η λύση μπορεί να εφαρμοστεί σε οποιοδήποτε άλλο προεκπαιδευμένο μοντέλο στο PyTorch Model Zoo. Για μια λίστα με τα διαθέσιμα μοντέλα, ανατρέξτε στο Τεκμηρίωση PyTorch Model Zoo.

Επισκόπηση λύσεων

Αυτή η ανάρτηση ιστολογίου θα ακολουθήσει τα ακόλουθα βήματα. Για μια πλήρη λειτουργική έκδοση όλων των βημάτων, βλ create_pytorch_model_sagemaker.ipynb

  • Βήμα 1: Ρύθμιση
  • Βήμα 2: Φόρτωση ενός μοντέλου ML από το PyTorch Model Zoo
  • Βήμα 3 Αποθηκεύστε και ανεβάστε τεχνουργήματα μοντέλων ML στο Amazon S3
  • Βήμα 4: Δημιουργία σεναρίων συμπερασμάτων μοντέλων ML
  • Βήμα 5: Εκκίνηση μιας εργασίας μαζικής μετατροπής του SageMaker
  • Βήμα 6: Οπτικοποίηση αποτελεσμάτων

Διάγραμμα αρχιτεκτονικής

δομή καταλόγου

Ο κώδικας για αυτό το ιστολόγιο βρίσκεται σε αυτό Αποθετήριο GitHub. Η βάση κώδικα περιέχει όλα όσα χρειαζόμαστε για τη δημιουργία τεχνουργημάτων μοντέλων ML, την εκκίνηση της εργασίας μετασχηματισμού και την οπτικοποίηση των αποτελεσμάτων.

Αυτή είναι η ροή εργασίας που χρησιμοποιούμε. Όλα τα παρακάτω βήματα θα αναφέρονται σε ενότητες αυτής της δομής.

sagemaker_pytorch_model_zoo --> root directory
    |- inference.py --> entry point file
    |- create_pytorch_model_sagemaker.ipynb --> walks through all steps in this blog post
    |- cars.jpg --> input image

Η sagemaker_torch_model_zoo ο φάκελος πρέπει να περιέχει inference.py ως αρχείο σημείου εισόδου και το create_pytorch_model_sagemaker.ipynb για να φορτώσετε και να αποθηκεύσετε τα βάρη του μοντέλου, να δημιουργήσετε ένα αντικείμενο μοντέλου SageMaker και, τέλος, να το μεταβιβάσετε σε μια εργασία μαζικής μετατροπής του SageMaker. Για να φέρετε τα δικά σας μοντέλα ML, αλλάξτε τις διαδρομές στην ενότητα Βήμα 1: ρύθμιση του σημειωματάριου και φορτώστε ένα νέο μοντέλο στο Βήμα 2: Φόρτωση μοντέλου ML από την ενότητα PyTorch Model Zoo. Τα υπόλοιπα παρακάτω βήματα θα παραμείνουν τα ίδια.

Βήμα 1: Ρύθμιση

Ρόλοι IAM

Το SageMaker εκτελεί λειτουργίες σε υποδομή που διαχειρίζεται το SageMaker. Το SageMaker μπορεί να εκτελέσει μόνο ενέργειες που επιτρέπονται όπως ορίζονται στον συνοδευτικό ρόλο εκτέλεσης IAM του σημειωματάριου για το SageMaker. Για μια πιο λεπτομερή τεκμηρίωση σχετικά με τη δημιουργία ρόλων IAM και τη διαχείριση των δικαιωμάτων IAM, ανατρέξτε στο Τεκμηρίωση ρόλων AWS SageMaker. Μπορούμε να δημιουργήσουμε έναν νέο ρόλο, ή θα μπορούσαμε να τον αποκτήσουμε Σημειωματάριο SageMaker (Studio).τον προεπιλεγμένο ρόλο εκτέλεσης του εκτελώντας τις ακόλουθες γραμμές κώδικα:

import sagemaker

session = sagemaker.Session()

# Set a default S3 bucket
default_bucket = session.default_bucket()

# Get the region
region = boto3.Session().region_name

# Get the SageMaker Execution Role
role_arn = sagemaker.get_execution_role()

Ο παραπάνω κώδικας παίρνει τον ρόλο εκτέλεσης του SageMaker για την παρουσία του σημειωματάριου. Αυτός είναι ο ρόλος IAM που δημιουργήσαμε για την παρουσία του σημειωματάριου SageMaker ή SageMaker Studio.

Παράμετροι με δυνατότητα διαμόρφωσης από τον χρήστη

Ακολουθούν όλες οι διαμορφώσιμες παράμετροι που απαιτούνται για τη δημιουργία και την έναρξη της εργασίας μαζικής μετατροπής του SageMaker:

INSTANCE_TYPE= "ml.m5.xlarge"
INSTANCE_COUNT= 1
BUCKET = os.path.join("s3://", default_bucket)

DATA_PATH= os.path.join(BUCKET, "images")
IMAGE_NAME = "cars.jpg"
RANDOM_STRING_LENGTH= 16
MODEL_NAME= "FasterRCNNResnet50"

# Needs to be set to version 1.2 or higher to enable automatic PyTorch model repackaging
FRAMEWORK_VERSION= "1.2"
ENTRY_POINT_FILE_NAME= "inference.py"

SAGEMAKER_EXECUTION_ROLE_ARN= role_arn
MODEL_ARTIFACTS_FILE_NAME= os.path.join(BUCKET, "modelzoo/fasterrcnn_resnet50_fpn/model.tar.gz")
IMAGE_URI= sagemaker.image_uris.retrieve(framework="pytorch",
region=region,
version="1.9.1",
py_version="py38",
image_scope='inference',
instance_type=INSTANCE_TYPE)

Βήμα 2: Φόρτωση ενός μοντέλου ML από το PyTorch Model Zoo

Στη συνέχεια, καθορίζουμε ένα μοντέλο ανίχνευσης αντικειμένων από το PyTorch Model Zoo και αποθηκεύουμε τα βάρη του μοντέλου ML του. Συνήθως, αποθηκεύουμε ένα μοντέλο PyTorch χρησιμοποιώντας τις επεκτάσεις αρχείων .pt ή .pth. Το παρακάτω απόσπασμα κώδικα κατεβάζει ένα προεκπαιδευμένο μοντέλο Faster R-CNN ResNet50 ML από το PyTorch Model Zoo:

model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)

Ο μετασχηματισμός παρτίδας του SageMaker απαιτεί ως είσοδο κάποια βάρη μοντέλου, επομένως θα αποθηκεύσουμε το προεκπαιδευμένο μοντέλο ML ως model.pt. Αν θέλουμε να φορτώσουμε ένα προσαρμοσμένο μοντέλο, θα μπορούσαμε να αποθηκεύσουμε τα βάρη του μοντέλου από ένα άλλο μοντέλο PyTorch ως model.pt.

H = 1080
W = 1920
scripted_fn = torch.jit.script(model, torch.randn(1, 3, H, W))
scripted_fn.save("model.pt")

Βήμα 3: Αποθηκεύστε και ανεβάστε τεχνουργήματα μοντέλων ML στο Amazon S3

Εφόσον θα χρησιμοποιήσουμε το SageMaker για συμπέρασμα ML, πρέπει να ανεβάσουμε τα βάρη του μοντέλου σε έναν κάδο S3. Μπορούμε να το κάνουμε αυτό χρησιμοποιώντας τις παρακάτω εντολές ή κατεβάζοντας και απλώς σύροντας και αποθέτοντας το αρχείο απευθείας στο S3. Οι ακόλουθες εντολές θα συμπιέσουν πρώτα την ομάδα των αρχείων μέσα model.pt σε ένα tarball και αντιγράψτε τα βάρη του μοντέλου από το τοπικό μας μηχάνημα στον κάδο S3.

Note: Για να εκτελέσετε τις παρακάτω εντολές, πρέπει να έχετε το Διεπαφή γραμμής εντολών AWS (AWS CLI) εγκατασταθεί.

tar -czvf model.tar.gz model.pt
aws s3 cp model.tar.gz $MODEL_ARTIFACTS_FILE_NAME

Στη συνέχεια, αντιγράφουμε την εικόνα εισόδου μας στο S3. Παρακάτω είναι η πλήρης διαδρομή S3 για την εικόνα.

car_image_path = os.path.join(DATA_PATH, IMAGE_NAME)

Μπορούμε να αντιγράψουμε αυτή την εικόνα στο S3 με μια άλλη εντολή aws s3 cp.

aws s3 cp cars.jpg $car_image_path

Βήμα 4: Δημιουργία σεναρίων συμπερασμάτων μοντέλων ML

Τώρα θα εξετάσουμε το αρχείο σημείου εισόδου μας, inference.py μονάδα μέτρησης. Μπορούμε να αναπτύξουμε ένα μοντέλο PyTorch που έχει εκπαιδευτεί εκτός του SageMaker χρησιμοποιώντας την κλάση PyTorchModel. Αρχικά, εγκαινιάζουμε το αντικείμενο PyTorchModelZoo. Στη συνέχεια, θα κατασκευάσουμε ένα αρχείο σημείου εισόδου inference.py για την εκτέλεση συμπερασμάτων ML χρησιμοποιώντας δέσμη μετασχηματισμού SageMaker σε δείγματα δεδομένων που φιλοξενούνται στο Amazon S3.

Κατανόηση του αντικειμένου PyTorchModel

Η PyTorchModel κλάση εντός του SageMaker Python API μας επιτρέπει να εκτελούμε συμπέρασμα ML χρησιμοποιώντας το τεχνούργημα μοντέλου που έχουμε λάβει.

Για να ξεκινήσουμε την κλάση PyTorchModel, πρέπει να κατανοήσουμε τις ακόλουθες παραμέτρους εισόδου:

  • name: Ονομα μοντέλου; Συνιστούμε τη χρήση είτε του ονόματος μοντέλου + ημερομηνίας ώρας είτε μιας τυχαίας συμβολοσειράς + ώρας ημερομηνίας για μοναδικότητα.
  • model_data: Το S3 URI του συσκευασμένου μοντέλου ML.
  • entry_point: Ένα αρχείο Python που ορίζεται από το χρήστη που θα χρησιμοποιηθεί από την εικόνα του Docker συμπερασμάτων για τον ορισμό χειριστών για εισερχόμενα αιτήματα. Ο κώδικας ορίζει τη φόρτωση του μοντέλου, την προεπεξεργασία εισόδου, τη λογική πρόβλεψης και τη μετα-επεξεργασία εξόδου.
  • framework_version: Πρέπει να ρυθμιστεί στην έκδοση 1.2 ή νεότερη για να ενεργοποιηθεί η αυτόματη επανασυσκευασία μοντέλων PyTorch.
  • source_dir: Ο κατάλογος του αρχείου entry_point.
  • role: Ένας ρόλος IAM για την υποβολή αιτημάτων υπηρεσίας AWS.
  • image_uri: Χρησιμοποιήστε αυτήν την εικόνα κοντέινερ Amazon ECR Docker ως βάση για το περιβάλλον υπολογισμού του μοντέλου ML.
  • sagemaker_session: Η συνεδρία του SageMaker.
  • py_version: Η έκδοση Python που θα χρησιμοποιηθεί

Το ακόλουθο απόσπασμα κώδικα δημιουργεί την κλάση PyTorchModel για την εκτέλεση συμπερασμάτων χρησιμοποιώντας το προεκπαιδευμένο μοντέλο PyTorch:

model = PyTorchModel(
               name=RANDOM_STRING,
               model_data=MODEL_ARTIFACTS_FILE_NAME,
               entry_point=ENTRY_POINT_FILE_NAME,
               framework_version=FRAMEWORK_VERSION,
               role=SAGEMAKER_EXECUTION_ROLE_ARN,
               sagemaker_session=sagemaker_session,
               image_uri=IMAGE_URI,
        )

Κατανόηση του αρχείου σημείου εισόδου (inference.py)

Η παράμετρος entry_point δείχνει ένα αρχείο Python με όνομα inference.py. Αυτό το σημείο εισόδου ορίζει τη φόρτωση του μοντέλου, την προεπεξεργασία εισόδου, τη λογική πρόβλεψης και τη μετα-επεξεργασία εξόδου. Συμπληρώνει τον κώδικα εξυπηρέτησης του μοντέλου ML στον προκατασκευασμένο PyTorch SageMaker Deep Learning Container εικόνα.

Inference.py θα περιέχει τις ακόλουθες λειτουργίες. Στο παράδειγμά μας, εφαρμόζουμε το model_fn, input_fn, predict_fn και output_fn λειτουργίες για την παράκαμψη του προεπιλεγμένος χειριστής συμπερασμάτων PyTorch.

  1. model_fn: Λαμβάνει έναν κατάλογο που περιέχει στατικά σημεία ελέγχου μοντέλων στην εικόνα συμπερασμάτων. Ανοίγει και φορτώνει το μοντέλο από μια καθορισμένη διαδρομή και επιστρέφει ένα μοντέλο PyTorch.
  2. input_fn: Λαμβάνει ως είσοδο το ωφέλιμο φορτίο της εισερχόμενης αίτησης (request_body) και τον τύπο περιεχομένου μιας εισερχόμενης αίτησης (request_content_type). Χειρίζεται την αποκωδικοποίηση δεδομένων. Αυτή η λειτουργία πρέπει να προσαρμοστεί ανάλογα με την είσοδο που αναμένει το μοντέλο.
  3. predict_fn: Καλεί ένα μοντέλο σε δεδομένα που έχουν αποσυνδεθεί στο input_fn. Πραγματοποιεί πρόβλεψη στο αποσειροποιημένο αντικείμενο με το φορτωμένο μοντέλο ML.
  4. output_fn: Σειρώνει το αποτέλεσμα πρόβλεψης στον επιθυμητό τύπο περιεχομένου απόκρισης. Μετατρέπει τις προβλέψεις που λαμβάνονται από τη συνάρτηση predict_fn σε μορφές JSON, CSV ή NPY.

Βήμα 5: Εκκίνηση μιας εργασίας μαζικής μετατροπής του SageMaker

Για αυτό το παράδειγμα, θα λάβουμε αποτελέσματα συμπερασμάτων ML μέσω μιας εργασίας μετασχηματισμού παρτίδας του SageMaker. Οι εργασίες ομαδικού μετασχηματισμού είναι πιο χρήσιμες όταν θέλουμε να λάβουμε συμπεράσματα από σύνολα δεδομένων μία φορά, χωρίς την ανάγκη για μόνιμο τελικό σημείο. Στιγματίζουμε α σοφός.μετασχηματιστής.Μετασχηματιστής αντικείμενο για τη δημιουργία και την αλληλεπίδραση με εργασίες μαζικής μετατροπής του SageMaker.

transformer = model.transformer(instance_type=INSTANCE_TYPE, 
                                instance_count=INSTANCE_COUNT
                                )
transformer.transform(data=DATA_PATH,
                      data_type="S3Prefix",
                      content_type="application/x-image",
                      wait=True
                      )

Δείτε την τεκμηρίωση για τη δημιουργία μιας εργασίας μετασχηματισμού παρτίδας στο CreateTransformJob.

Βήμα 6: Οπτικοποίηση δοκιμών

Μόλις ολοκληρωθεί η εργασία μετασχηματισμού δέσμης SageMaker, μπορούμε να φορτώσουμε τις εξόδους συμπερασμάτων ML από το Amazon S3. Για αυτό, μεταβείτε στο Κονσόλα διαχείρισης AWS και αναζητήστε το Amazon SageMaker. Στο αριστερό πλαίσιο, κάτω Συμπέρασμα, Δείτε Εργασίες μαζικής μετατροπής.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Μετά την επιλογή Μαζική μεταμόρφωση, δείτε την ιστοσελίδα που περιλαμβάνει όλες τις εργασίες μαζικής μετατροπής του SageMaker. Μπορούμε να δούμε την πρόοδο της πιο πρόσφατης εκτέλεσης της εργασίας μας.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Πρώτον, η εργασία θα έχει την κατάσταση "Σε εξέλιξη". Μόλις ολοκληρωθεί, δείτε την αλλαγή κατάστασης σε Ολοκληρώθηκε.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Μόλις η κατάσταση επισημανθεί ως ολοκληρωμένη, μπορούμε να κάνουμε κλικ στην εργασία για να προβάλουμε τα αποτελέσματα. Αυτή η ιστοσελίδα περιέχει τη σύνοψη της εργασίας, συμπεριλαμβανομένων των διαμορφώσεων της εργασίας που μόλις εκτελέσαμε.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Κάτω από Διαμόρφωση δεδομένων εξόδου, θα δούμε μια διαδρομή εξόδου S3. Εδώ θα βρούμε την έξοδο συμπερασμάτων ML.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Επιλέξτε τη διαδρομή εξόδου S3 και δείτε ένα αρχείο [image_name].[file_type].out με τα δεδομένα εξόδου μας. Το αρχείο εξόδου μας θα περιέχει μια λίστα με αντιστοιχίσεις. Παράδειγμα εξόδου:

[
  {
    "boxes": [
      [
        214.32322692871094,
        192.18418884277344,
        830.3932495117188,
        521.6996459960938
      ],
      [
        235.6244354248047,
        301.3315734863281,
        253.6448516845703,
        312.3525695800781
      ],
      [
        183.92031860351562,
        291.7759704589844,
        207.28196716308594,
        312.1448669433594
      ],
    ],
    "labels": [
      3,
      3,
      9,
    ],
    "scores": [
      0.8823906183242798,
      0.7710548639297485,
      0.4969744384288788,
    ]
  }
]

Για να οπτικοποιήσουμε αυτές τις προβλέψεις, διαβάζουμε πρώτα τη διαδρομή εξόδου από το αντικείμενο του μετασχηματιστή μας.

def get_output_from_s3(s3uri, file_name):
    parsed_url = urlparse(s3uri)
    bucket_name = parsed_url.netloc
    prefix = parsed_url.path[1:]
    s3 = boto3.resource('s3')
    obj = s3.Object(bucket_name, '{}/{}'.format(prefix, file_name))
    return obj.get()["Body"].read().decode('utf-8')
    
# Output path from Batch Transform job
output_path = transformer.output_path

# Get the output file from S3
predictions = get_output_from_s3(output_path, "car.jpg.out")

Στη συνέχεια, επεξεργαζόμαστε αυτό το αρχείο εξόδου και οπτικοποιούμε τις προβλέψεις μας. Παρακάτω προσδιορίζουμε το όριο εμπιστοσύνης μας. Λαμβάνουμε τη λίστα των τάξεων από το Αντιστοίχιση αντικειμένων δεδομένων COCO. Κατά την εξαγωγή συμπερασμάτων, το μοντέλο απαιτεί μόνο τους τανυστές εισόδου και επιστρέφει τις μετα-επεξεργασμένες προβλέψεις ως Λίστα[Dict[Tensor]], μία για κάθε εικόνα εισόδου. Τα πεδία του Dict είναι τα εξής, όπου N είναι ο αριθμός των ανιχνεύσεων:

  1. κουτιά (FloatTensor[N, 4]): τα προβλεπόμενα πλαίσια [x1, y1, x2, y2] με τη μορφή 0 <= x1 < x2 <= W and 0 <= y1 < y2 <= H, Όπου W είναι το πλάτος της εικόνας και H είναι το ύψος της εικόνας
  2. ετικέτες (Int64Tensor[N]): οι προβλεπόμενες ετικέτες για κάθε ανίχνευση
  3. βαθμολογίες (Tensor[N]): οι βαθμολογίες πρόβλεψης για κάθε ανίχνευση

Για περισσότερες λεπτομέρειες σχετικά με την έξοδο, ανατρέξτε στο Τεκμηρίωση PyTorch Faster R-CNN FPN.

Η έξοδος του μοντέλου περιέχει οριοθετημένα πλαίσια με αντίστοιχους βαθμούς εμπιστοσύνης. Μπορούμε να βελτιστοποιήσουμε την εμφάνιση ψευδών θετικών στοιχείων αφαιρώντας τα οριοθετημένα πλαίσια για τα οποία το μοντέλο δεν είναι σίγουρο. Τα παρακάτω αποσπάσματα κώδικα επεξεργάζονται τις προβλέψεις στο αρχείο εξόδου και σχεδιάζουν πλαίσια οριοθέτησης στις προβλέψεις όπου η βαθμολογία είναι πάνω από το όριο εμπιστοσύνης μας. Ορίζουμε το όριο πιθανότητας, CONF_THRESH, έως 75 για αυτό το παράδειγμα.

def procress_batch_transform_output(predictions):
    predictions = eval(predictions)
    for pred in predictions[1:]:
        pred = pred[0]
        boxes = np.array(pred["boxes"])
        labels = np.array(pred["labels"])
        scores = np.array(pred["scores"])

        scores_idx = scores >= CONF_THRESH
        boxes_meet = boxes[scores_idx, :]
        labels_meet = labels[scores_idx]
        scores_meet = scores[scores_idx]

        labels_str = [CLASSES[i] for i in labels_meet]
        
        # Return a tuple containing labels, label index, score, and bounding box
        processed_predictions =  list(zip(labels_str, labels_meet, scores_meet, boxes_meet))
        return processed_predictions
    
    
def visualize_batch_transform_output(input_image, processed_predictions):
    # read input image from computer
    img = read_image(input_image)
    for label, label_index, score, box in processed_predictions:
        label = label + ", score: " + str(round(score, 2))
        # draw bounding box and fill color
        box = torch.tensor(box)
        box = box.unsqueeze(0)
        img = draw_bounding_boxes(img, box, width=5,labels=[label], font_size=16)

    # transform this image to PIL image
    img = torchvision.transforms.ToPILImage()(img)

    # display output
    img.show()

# Process the predictions in the output file
processed_predictions = procress_batch_transform_output(predictions)
visualize_batch_transform_output("car.jpg", processed_predictions)

Τέλος, οπτικοποιούμε αυτές τις αντιστοιχίσεις για να κατανοήσουμε το αποτέλεσμα μας.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Note: εάν η εικόνα δεν εμφανίζεται στο σημειωματάριό σας, εντοπίστε την στο δέντρο καταλόγου στην αριστερή πλευρά του JupyterLab και ανοίξτε την από εκεί.

Εκτέλεση του παραδείγματος κώδικα

Για ένα πλήρες παράδειγμα εργασίας, κλωνοποιήστε τον κώδικα στο amazon-sagemaker-examples GitHub και τρέξτε τα κελιά στο create_pytorch_model_sagemaker.ipynb σημειωματάριο.

Συμπέρασμα

Σε αυτήν την ανάρτηση ιστολογίου, παρουσιάσαμε ένα παράδειγμα από άκρο σε άκρο εκτέλεσης συμπερασμάτων ML χρησιμοποιώντας ένα μοντέλο ανίχνευσης αντικειμένων από τον ζωολογικό κήπο PyTorch Model Zoo χρησιμοποιώντας δέσμη μετασχηματισμού SageMaker. Καλύψαμε τη φόρτωση των βαρών του μοντέλου ανίχνευσης αντικειμένων Ταχύτερου R-CNN, την αποθήκευση τους σε έναν κάδο S3, τη σύνταξη ενός αρχείου σημείου εισόδου και την κατανόηση των βασικών παραμέτρων στο PyTorchModel API. Τέλος, αναπτύξαμε το μοντέλο και πραγματοποιήσαμε συμπέρασμα μοντέλου ML, οπτικοποιήσαμε την έξοδο του μοντέλου και μάθαμε πώς να ερμηνεύουμε τα αποτελέσματα.


Σχετικά με τους Συγγραφείς

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Dipika Khullar είναι Μηχανικός ML στο Εργαστήριο Amazon ML Solutions. Βοηθά τους πελάτες να ενσωματώσουν λύσεις ML για να λύσουν τα επιχειρηματικά τους προβλήματα. Πιο πρόσφατα, έχει δημιουργήσει αγωγούς εκπαίδευσης και συμπερασμάτων για πελάτες μέσων και προγνωστικά μοντέλα για το μάρκετινγκ.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Μαρσέλο Αμπέρλε είναι Μηχανικός ML στον οργανισμό AWS AI. Οδηγεί τις προσπάθειες των MLOps στο Εργαστήριο Amazon ML Solutions, βοηθώντας τους πελάτες να σχεδιάσουν και να εφαρμόσουν κλιμακούμενα συστήματα ML. Η αποστολή του είναι να καθοδηγήσει τους πελάτες στο ταξίδι της επιχείρησης ML και να επιταχύνει την πορεία τους ML προς την παραγωγή.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Νινάντ Κουλκάρνι είναι Εφαρμοσμένος Επιστήμονας στο Εργαστήριο Amazon ML Solutions. Βοηθά τους πελάτες να υιοθετήσουν ML και AI δημιουργώντας λύσεις για την αντιμετώπιση των επιχειρηματικών προβλημάτων τους. Πιο πρόσφατα, έχει δημιουργήσει μοντέλα πρόβλεψης για πελάτες αθλημάτων, αυτοκινήτων και μέσων ενημέρωσης.

Δημιουργήστε μοντέλα Amazon SageMaker χρησιμοποιώντας το PyTorch Model Zoo PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Γιας Σαχ είναι Επιστημονικός Διευθυντής στο Amazon ML Solutions Lab. Αυτός και η ομάδα του από εφαρμοσμένους επιστήμονες και μηχανικούς ML εργάζονται σε μια σειρά περιπτώσεων χρήσης ML από την υγειονομική περίθαλψη, τον αθλητισμό, την αυτοκινητοβιομηχανία και την κατασκευή.

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS