Εκμάθηση μεταφοράς για μοντέλα ανίχνευσης αντικειμένων TensorFlow στο Amazon SageMaker

Amazon Sage Maker παρέχει μια σουίτα από ενσωματωμένοι αλγόριθμοι, προ-εκπαιδευμένα μοντέλα, να προκατασκευασμένα πρότυπα λύσεων για να βοηθήσει τους επιστήμονες δεδομένων και τους επαγγελματίες της μηχανικής μάθησης (ML) να ξεκινήσουν την εκπαίδευση και την ανάπτυξη μοντέλων ML γρήγορα. Μπορείτε να χρησιμοποιήσετε αυτούς τους αλγόριθμους και τα μοντέλα τόσο για εποπτευόμενη όσο και για μη εποπτευόμενη μάθηση. Μπορούν να επεξεργαστούν διάφορους τύπους δεδομένων εισόδου, συμπεριλαμβανομένων πινάκων, εικόνας και κειμένου.

Αυτή η ανάρτηση είναι η δεύτερη σε μια σειρά σχετικά με τους νέους ενσωματωμένους αλγόριθμους στο SageMaker. Στο πρώτη θέση, δείξαμε πώς το SageMaker παρέχει έναν ενσωματωμένο αλγόριθμο για την ταξινόμηση εικόνων. Σήμερα, ανακοινώνουμε ότι το SageMaker παρέχει έναν νέο ενσωματωμένο αλγόριθμο για την ανίχνευση αντικειμένων χρησιμοποιώντας το TensorFlow. Αυτός ο εποπτευόμενος αλγόριθμος μάθησης υποστηρίζει τη μεταφορά μάθησης για πολλά προεκπαιδευμένα μοντέλα που είναι διαθέσιμα στο TensorFlow. Λαμβάνει μια εικόνα ως είσοδο και εξάγει τα αντικείμενα που υπάρχουν στην εικόνα μαζί με τα πλαίσια οριοθέτησης. Μπορείτε να βελτιστοποιήσετε αυτά τα προεκπαιδευμένα μοντέλα χρησιμοποιώντας εκμάθηση μεταφοράς ακόμα και όταν δεν είναι διαθέσιμος μεγάλος αριθμός εικόνων εκπαίδευσης. Είναι διαθέσιμο μέσω του SageMaker ενσωματωμένοι αλγόριθμοι καθώς και μέσω του SageMaker JumpStart UI in Στούντιο Amazon SageMaker. Για περισσότερες πληροφορίες, ανατρέξτε στο Ανίχνευση αντικειμένου Tensorflow και το παράδειγμα σημειωματάριο Εισαγωγή στο SageMaker Tensorflow – Ανίχνευση αντικειμένων.

Η ανίχνευση αντικειμένων με το TensorFlow στο SageMaker παρέχει εκμάθηση μεταφοράς σε πολλά προεκπαιδευμένα μοντέλα που είναι διαθέσιμα στο TensorFlow Hub. Σύμφωνα με τον αριθμό των ετικετών κλάσης στα δεδομένα εκπαίδευσης, μια νέα τυχαία αρχικοποιημένη κεφαλή ανίχνευσης αντικειμένων αντικαθιστά την υπάρχουσα κεφαλή του μοντέλου TensorFlow. Είτε ολόκληρο το δίκτυο, συμπεριλαμβανομένου του προεκπαιδευμένου μοντέλου, είτε μόνο το ανώτερο στρώμα (κεφαλή ανίχνευσης αντικειμένου) μπορεί να ρυθμιστεί με ακρίβεια στα νέα δεδομένα εκπαίδευσης. Σε αυτήν τη λειτουργία εκμάθησης μεταφοράς, μπορείτε να επιτύχετε εκπαίδευση ακόμα και με μικρότερο σύνολο δεδομένων.

Πώς να χρησιμοποιήσετε τον νέο αλγόριθμο ανίχνευσης αντικειμένων TensorFlow

Αυτή η ενότητα περιγράφει τον τρόπο χρήσης του αλγόριθμου ανίχνευσης αντικειμένων TensorFlow με το SDK SageMaker Python. Για πληροφορίες σχετικά με τον τρόπο χρήσης του από τη διεπαφή χρήστη του Studio, βλ SageMaker JumpStart.

Ο αλγόριθμος υποστηρίζει την εκμάθηση μεταφοράς για τα προεκπαιδευμένα μοντέλα που αναφέρονται στο Μοντέλα TensorFlow. Κάθε μοντέλο προσδιορίζεται από ένα μοναδικό model_id. Ο παρακάτω κώδικας δείχνει πώς να ρυθμίσετε με ακρίβεια ένα μοντέλο ResNet50 V1 FPN που προσδιορίζεται από model_id tensorflow-od1-ssd-resnet50-v1-fpn-640x640-coco17-tpu-8 σε ένα προσαρμοσμένο σύνολο δεδομένων εκπαίδευσης. Για κάθε model_id, προκειμένου να ξεκινήσει μια εργασία εκπαίδευσης SageMaker μέσω του Εκτιμητής κλάση του SageMaker Python SDK, πρέπει να λάβετε το URI εικόνας Docker, το URI σεναρίου εκπαίδευσης και το προεκπαιδευμένο URI μοντέλου μέσω των βοηθητικών λειτουργιών που παρέχονται στο SageMaker. Το εκπαιδευτικό σενάριο URI περιέχει όλο τον απαραίτητο κώδικα για την επεξεργασία δεδομένων, τη φόρτωση του προεκπαιδευμένου μοντέλου, την εκπαίδευση του μοντέλου και την αποθήκευση του εκπαιδευμένου μοντέλου για συμπέρασμα. Το προεκπαιδευμένο μοντέλο URI περιέχει τον προεκπαιδευμένο ορισμό της αρχιτεκτονικής του μοντέλου και τις παραμέτρους του μοντέλου. Σημειώστε ότι το URI εικόνας Docker και το URI σεναρίου εκπαίδευσης είναι το ίδιο για όλα τα μοντέλα ανίχνευσης αντικειμένων TensorFlow. Το προεκπαιδευμένο μοντέλο URI είναι συγκεκριμένο για το συγκεκριμένο μοντέλο. Τα προ-εκπαιδευμένα μοντέλα tarball έχουν προκαταλεχθεί από το TensorFlow και έχουν αποθηκευτεί με την κατάλληλη υπογραφή μοντέλου στο Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδοι, έτσι ώστε η εργασία εκπαίδευσης να εκτελείται σε απομόνωση δικτύου. Δείτε τον παρακάτω κώδικα:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-od1-ssd-resnet50-v1-fpn-640x640-coco17-tpu-8", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-od-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

Με αυτά τα τεχνουργήματα εκπαίδευσης για συγκεκριμένο μοντέλο, μπορείτε να κατασκευάσετε ένα αντικείμενο του Εκτιμητής τάξη:

# Create SageMaker Estimator instance
tf_od_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,)

Στη συνέχεια, για μεταφορά εκμάθησης στο προσαρμοσμένο σύνολο δεδομένων σας, ίσως χρειαστεί να αλλάξετε τις προεπιλεγμένες τιμές των υπερπαραμέτρων εκπαίδευσης, οι οποίες παρατίθενται στο Υπερπαραμέτρους. Μπορείτε να ανακτήσετε ένα λεξικό Python αυτών των υπερπαραμέτρων με τις προεπιλεγμένες τιμές τους καλώντας hyperparameters.retrieve_default, ενημερώστε τα όπως απαιτείται και μετά περάστε τα στην κλάση Εκτιμητής. Σημειώστε ότι οι προεπιλεγμένες τιμές ορισμένων από τις υπερπαραμέτρους είναι διαφορετικές για διαφορετικά μοντέλα. Για μεγάλα μοντέλα, το προεπιλεγμένο μέγεθος παρτίδας είναι μικρότερο και το train_only_top_layer Η υπερπαράμετρος έχει οριστεί σε True. Η υπερπαράμετρος train_only_top_layer καθορίζει ποιες παράμετροι του μοντέλου αλλάζουν κατά τη διαδικασία λεπτομέρειας. Αν train_only_top_layer is True, οι παράμετροι των επιπέδων ταξινόμησης αλλάζουν και οι υπόλοιπες παράμετροι παραμένουν σταθερές κατά τη διαδικασία λεπτομέρειας. Από την άλλη, αν train_only_top_layer is False, όλες οι παράμετροι του μοντέλου έχουν ρυθμιστεί με ακρίβεια. Δείτε τον παρακάτω κώδικα:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

Παρέχουμε το Σύνολο δεδομένων PennFudanPed ως προεπιλεγμένο σύνολο δεδομένων για τη λεπτομερή ρύθμιση των μοντέλων. Το σύνολο δεδομένων περιλαμβάνει εικόνες πεζών. Ο ακόλουθος κώδικας παρέχει το προεπιλεγμένο σύνολο δεδομένων εκπαίδευσης που φιλοξενείται σε κάδους S3:

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/PennFudanPed_COCO_format/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

Τέλος, για να ξεκινήσετε την εργασία εκπαίδευσης του SageMaker για τη λεπτομερή ρύθμιση του μοντέλου, καλέστε .fit στο αντικείμενο της κλάσης Εκτιμητής, μεταβιβάζοντας τη θέση S3 του συνόλου δεδομένων εκπαίδευσης:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Για περισσότερες πληροφορίες σχετικά με τον τρόπο χρήσης του νέου αλγόριθμου ανίχνευσης αντικειμένων SageMaker TensorFlow για μεταφορά εκμάθησης σε ένα προσαρμοσμένο σύνολο δεδομένων, αναπτύξτε το βελτιστοποιημένο μοντέλο, εκτελέστε συμπέρασμα στο αναπτυγμένο μοντέλο και αναπτύξτε το προεκπαιδευμένο μοντέλο όπως είναι, χωρίς προηγούμενη λεπτομέρεια σε ένα προσαρμοσμένο σύνολο δεδομένων, δείτε το ακόλουθο παράδειγμα σημειωματάριου: Εισαγωγή στο SageMaker TensorFlow – Ανίχνευση αντικειμένων.

Διεπαφή εισόδου/εξόδου για τον αλγόριθμο ανίχνευσης αντικειμένων TensorFlow

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

  • Εισαγωγή – Ένας κατάλογος με εικόνες υποκαταλόγου και ένα αρχείο annotations.json.
  • Παραγωγή – Υπάρχουν δύο έξοδοι. Το πρώτο είναι ένα βελτιστοποιημένο μοντέλο, το οποίο μπορεί να αναπτυχθεί για συμπεράσματα ή να εκπαιδευτεί περαιτέρω χρησιμοποιώντας σταδιακή εκπαίδευση. Το δεύτερο είναι ένα αρχείο που αντιστοιχίζει ευρετήρια κλάσεων σε ετικέτες κλάσεων. Αυτό αποθηκεύεται μαζί με το μοντέλο.

Ο κατάλογος εισόδου θα πρέπει να μοιάζει με το ακόλουθο παράδειγμα:

input_directory
      | -- images
            |--abc.png
            |--def.png
      |--annotations.json

Η annotations.json αρχείο θα πρέπει να έχει πληροφορίες για bounding_boxes και τις ετικέτες της τάξης τους. Θα πρέπει να έχει ένα λεξικό με τα κλειδιά "images" και "annotations". Η αξία για το "images" κλειδί θα πρέπει να είναι μια λίστα με καταχωρήσεις, μία για κάθε εικόνα της φόρμας {"file_name": image_name, "height": height, "width": width, "id": image_id}. Η τιμή του "annotations" κλειδί θα πρέπει να είναι μια λίστα με καταχωρήσεις, μία για κάθε πλαίσιο οριοθέτησης της φόρμας {"image_id": image_id, "bbox": [xmin, ymin, xmax, ymax], "category_id": bbox_label}.

Συμπεράσματα με τον αλγόριθμο ανίχνευσης αντικειμένων TensorFlow

Τα μοντέλα που δημιουργούνται μπορούν να φιλοξενηθούν για συμπέρασμα και υποστήριξη κωδικοποιημένων μορφών εικόνας .jpg, .jpeg και .png ως application/x-image Τύπος περιεχομένου. Το μέγεθος της εικόνας εισόδου αλλάζει αυτόματα. Η έξοδος περιέχει τα πλαίσια, τις προβλεπόμενες κλάσεις και τις βαθμολογίες για κάθε πρόβλεψη. Το μοντέλο ανίχνευσης αντικειμένου TensorFlow επεξεργάζεται μια μεμονωμένη εικόνα ανά αίτημα και εξάγει μόνο μία γραμμή στο JSON. Το παρακάτω είναι ένα παράδειγμα απάντησης σε JSON:

accept: application/json;verbose

{"normalized_boxes":[[xmin1, xmax1, ymin1, ymax1],....], "classes":[classidx1, class_idx2,...], "scores":[score_1, score_2,...], "labels": [label1, label2, ...], "tensorflow_model_output":}

If accept έχει οριστεί σε application/json, τότε το μοντέλο παράγει μόνο προβλεπόμενα πλαίσια, κλάσεις και βαθμολογίες. Για περισσότερες λεπτομέρειες σχετικά με την εκπαίδευση και τα συμπεράσματα, δείτε το δείγμα σημειωματάριου Εισαγωγή στο SageMaker TensorFlow – Ανίχνευση αντικειμένων.

Χρησιμοποιήστε τους ενσωματωμένους αλγόριθμους του SageMaker μέσω του JumpStart UI

Μπορείτε επίσης να χρησιμοποιήσετε την ανίχνευση αντικειμένων SageMaker TensorFlow και οποιονδήποτε από τους άλλους ενσωματωμένους αλγόριθμους με μερικά κλικ μέσω του JumpStart UI. Το JumpStart είναι μια δυνατότητα του SageMaker που σας επιτρέπει να εκπαιδεύετε και να αναπτύσσετε ενσωματωμένους αλγόριθμους και προεκπαιδευμένα μοντέλα από διάφορα πλαίσια ML και κόμβους μοντέλων μέσω μιας γραφικής διεπαφής. Σας επιτρέπει επίσης να αναπτύξετε ολοκληρωμένες λύσεις ML που συνδυάζουν μοντέλα ML και διάφορες άλλες υπηρεσίες AWS για να λύσετε μια στοχευμένη περίπτωση χρήσης.

Ακολουθούν δύο βίντεο που δείχνουν πώς μπορείτε να επαναλάβετε την ίδια διαδικασία λεπτομέρειας και ανάπτυξης που μόλις περάσαμε με μερικά κλικ μέσω του JumpStart UI.

Βελτιστοποιήστε το προεκπαιδευμένο μοντέλο

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

Αναπτύξτε το τελειοποιημένο μοντέλο

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

Συμπέρασμα

Σε αυτήν την ανάρτηση, ανακοινώσαμε την κυκλοφορία του ενσωματωμένου αλγόριθμου ανίχνευσης αντικειμένων SageMaker TensorFlow. Δώσαμε παράδειγμα κώδικα σχετικά με τον τρόπο εκμάθησης μεταφοράς σε ένα προσαρμοσμένο σύνολο δεδομένων χρησιμοποιώντας ένα προεκπαιδευμένο μοντέλο από το TensorFlow χρησιμοποιώντας αυτόν τον αλγόριθμο.

Για περισσότερες πληροφορίες, ρίξτε μια ματιά τεκμηρίωση και την παράδειγμα σημειωματάριο.


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

Μεταφορά εκμάθησης για μοντέλα ανίχνευσης αντικειμένων TensorFlow στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Vivek Madan είναι Εφαρμοσμένος Επιστήμονας με το Ομάδα Amazon SageMaker JumpStart. Πήρε το διδακτορικό του από το Πανεπιστήμιο του Ιλινόις στο Urbana-Champaign και ήταν μεταδιδακτορικός ερευνητής στο Georgia Tech. Είναι ενεργός ερευνητής στη μηχανική μάθηση και στο σχεδιασμό αλγορίθμων και έχει δημοσιεύσει εργασίες σε συνέδρια EMNLP, ICLR, COLT, FOCS και SODA.

Μεταφορά εκμάθησης για μοντέλα ανίχνευσης αντικειμένων TensorFlow στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Τζοάο Μούρα είναι Αρχιτέκτονας Ειδικών Λύσεων AI/ML στο Amazon Web Services. Επικεντρώνεται κυρίως σε περιπτώσεις χρήσης NLP και βοηθά τους πελάτες να βελτιστοποιήσουν την εκπαίδευση και την ανάπτυξη μοντέλων βαθιάς μάθησης. Είναι επίσης ενεργός υποστηρικτής των λύσεων ML χαμηλού κώδικα και του υλικού εξειδικευμένου για ML.

Μεταφορά εκμάθησης για μοντέλα ανίχνευσης αντικειμένων TensorFlow στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Ashish Khetan είναι Ανώτερος Εφαρμοσμένος Επιστήμονας με Ενσωματωμένοι αλγόριθμοι Amazon SageMaker και βοηθά στην ανάπτυξη αλγορίθμων μηχανικής μάθησης. Πήρε το διδακτορικό του από το University of Illinois Urbana Champaign. Είναι ενεργός ερευνητής στη μηχανική μάθηση και στα στατιστικά συμπεράσματα και έχει δημοσιεύσει πολλές εργασίες σε συνέδρια NeurIPS, ICML, ICLR, JMLR, ACL και EMNLP.

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

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