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

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

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

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

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

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

Ο αλγόριθμος υποστηρίζει την εκμάθηση μεταφοράς για τα προεκπαιδευμένα μοντέλα που αναφέρονται στο Μοντέλα Hub TensorFlow. Κάθε μοντέλο προσδιορίζεται από ένα μοναδικό model_id. Ο ακόλουθος κώδικας δείχνει πώς να βελτιστοποιήσετε το MobileNet V2 1.00 224 που προσδιορίζεται από model_id tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4 σε ένα προσαρμοσμένο σύνολο δεδομένων εκπαίδευσης. Για κάθε model_id, προκειμένου να ξεκινήσει μια εργασία εκπαίδευσης SageMaker μέσω του Εκτιμητής κλάση του SageMaker Python SDK, πρέπει να ανακτήσετε το URI εικόνας Docker, το URI σεναρίου εκπαίδευσης και το προεκπαιδευμένο URI μοντέλου μέσω των βοηθητικών λειτουργιών που παρέχονται στο SageMaker. Το εκπαιδευτικό σενάριο URI περιέχει όλο τον απαραίτητο κώδικα για την επεξεργασία δεδομένων, τη φόρτωση του προεκπαιδευμένου μοντέλου, την εκπαίδευση του μοντέλου και την αποθήκευση του εκπαιδευμένου μοντέλου για συμπέρασμα. Το προεκπαιδευμένο μοντέλο URI περιέχει τον προεκπαιδευμένο ορισμό της αρχιτεκτονικής του μοντέλου και τις παραμέτρους του μοντέλου. Σημειώστε ότι το URI εικόνας Docker και το URI σεναρίου εκπαίδευσης είναι το ίδιο για όλα τα μοντέλα ταξινόμησης εικόνων TensorFlow. Το προεκπαιδευμένο μοντέλο URI είναι συγκεκριμένο για το συγκεκριμένο μοντέλο. Τα προεκπαιδευμένα μοντέλα tarball έχουν προκαταλεχθεί από το TensorFlow Hub και έχουν αποθηκευτεί με την κατάλληλη υπογραφή μοντέλου στο Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδοι, έτσι ώστε η εργασία εκπαίδευσης να εκτελείται σε απομόνωση δικτύου. Δείτε τον παρακάτω κώδικα:

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

model_id, model_version = "tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4", "*"
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-ic-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

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

# Create SageMaker Estimator instance
tf_ic_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"

Ο παρακάτω κώδικας παρέχει ένα προεπιλεγμένο σύνολο δεδομένων εκπαίδευσης που φιλοξενείται σε κάδους S3. Παρέχουμε το tf_flowers σύνολο δεδομένων ως προεπιλεγμένο σύνολο δεδομένων για τη λεπτομερή ρύθμιση των μοντέλων. Το σύνολο δεδομένων περιλαμβάνει εικόνες πέντε τύπων λουλουδιών. Το σύνολο δεδομένων έχει ληφθεί από TensorFlow σύμφωνα με το Άδεια χρήσης Apache 2.0.

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

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_ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)

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

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

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

  • Εισαγωγή – Ένας κατάλογος με τόσους υποκαταλόγους όσο και ο αριθμός των κλάσεων. Κάθε υποκατάλογος πρέπει να έχει εικόνες που ανήκουν σε αυτήν την κατηγορία σε μορφή .jpg, .jpeg ή .png.
  • Παραγωγή – Ένα βελτιστοποιημένο μοντέλο που μπορεί να αναπτυχθεί για συμπεράσματα ή μπορεί να εκπαιδευτεί περαιτέρω χρησιμοποιώντας σταδιακή εκπαίδευση. Μια υπογραφή προεπεξεργασίας και μεταεπεξεργασίας προστίθεται στο τελειοποιημένο μοντέλο, έτσι ώστε να παίρνει ακατέργαστη εικόνα .jpg ως είσοδο και να επιστρέφει πιθανότητες κλάσης. Μια κλάση αντιστοίχισης αρχείων με ευρετήρια σε ετικέτες κλάσεων αποθηκεύεται μαζί με τα μοντέλα.

Ο κατάλογος εισόδου θα πρέπει να μοιάζει με το ακόλουθο παράδειγμα εάν τα δεδομένα εκπαίδευσης περιέχουν εικόνες από δύο κλάσεις: roses και dandelion. Η διαδρομή S3 θα πρέπει να μοιάζει s3://bucket_name/input_directory/. Σημειώστε το ίχνος / απαιτείται. Τα ονόματα των φακέλων και roses, dandelion, και τα ονόματα αρχείων .jpg μπορεί να είναι οτιδήποτε. Το αρχείο αντιστοίχισης ετικετών που αποθηκεύεται μαζί με το εκπαιδευμένο μοντέλο στον κάδο S3 αντιστοιχίζει τα ονόματα των φακέλων roses και dandelion στα ευρετήρια στη λίστα πιθανοτήτων κλάσης που βγάζει το μοντέλο. Η αντιστοίχιση ακολουθεί αλφαβητική σειρά των ονομάτων των φακέλων. Στο ακόλουθο παράδειγμα, αντιστοιχεί στο δείκτη 0 στη λίστα εξόδου του μοντέλου dandelion, και ο δείκτης 1 αντιστοιχεί σε roses.

input_directory
    |--roses
        |--abc.jpg
        |--def.jpg
    |--dandelion
        |--ghi.jpg
        |--jkl.jpg

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

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

accept: application/json;verbose

 {"probabilities": [prob_0, prob_1, prob_2, ...],
  "labels":        [label_0, label_1, label_2, ...],
  "predicted_label": predicted_label}

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

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

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

Συμπέρασμα

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


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

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

Εκμάθηση μεταφοράς για μοντέλα ταξινόμησης εικόνων TensorFlow στο Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Vivek Madan είναι Εφαρμοσμένος Επιστήμονας με το Ομάδα Amazon SageMaker JumpStart. Πήρε το διδακτορικό του από το Πανεπιστήμιο του Illinois 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. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Raju Penmatcha είναι Senior Architect AI / ML Specialist Solutions Architect στο AWS. Συνεργάζεται με εκπαιδευτικούς, κυβερνητικούς και μη κερδοσκοπικούς πελάτες σε προγράμματα μηχανικής μάθησης και τεχνητής νοημοσύνης, βοηθώντας τους να δημιουργήσουν λύσεις χρησιμοποιώντας AWS. Όταν δεν βοηθά τους πελάτες, του αρέσει να ταξιδεύει σε νέα μέρη.

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

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