Amazon Sage Maker fornisce una suite di algoritmi incorporati, modelli pre-addestratie modelli di soluzioni predefiniti per aiutare i data scientist e i professionisti dell'apprendimento automatico (ML) a iniziare ad addestrare e distribuire rapidamente i modelli ML. È possibile utilizzare questi algoritmi e modelli sia per l'apprendimento supervisionato che non supervisionato. Possono elaborare vari tipi di dati di input, inclusi tabulari, immagini e testo.
A partire da oggi, SageMaker fornisce un nuovo algoritmo integrato per la classificazione delle immagini: Classificazione delle immagini – TensorFlow. È un algoritmo di apprendimento supervisionato che supporta l'apprendimento di trasferimento per molti modelli pre-addestrati disponibili in Hub TensorFlow. Prende un'immagine come input e genera la probabilità per ciascuna delle etichette di classe. Puoi mettere a punto questi modelli pre-addestrati utilizzando l'apprendimento del trasferimento anche quando non è disponibile un numero elevato di immagini di addestramento. È disponibile tramite SageMaker algoritmi incorporati così come attraverso il Interfaccia utente di SageMaker JumpStart interno Amazon Sage Maker Studio. Per ulteriori informazioni, fare riferimento alla sua documentazione Classificazione delle immagini – TensorFlow e il quaderno di esempio Introduzione a SageMaker TensorFlow – Classificazione delle immagini.
La classificazione delle immagini con TensorFlow in SageMaker fornisce l'apprendimento del trasferimento su molti modelli pre-addestrati disponibili in TensorFlow Hub. In base al numero di etichette di classe nei dati di addestramento, al modello TensorFlow Hub pre-addestrato viene associato un livello di classificazione. Lo strato di classificazione è costituito da uno strato di dropout e uno strato denso, che è uno strato completamente connesso con un regolarizzatore a 2 norme che viene inizializzato con pesi casuali. L'addestramento del modello ha iperparametri per il tasso di abbandono dello strato di abbandono e il fattore di regolarizzazione L2 per lo strato denso. Quindi l'intera rete, incluso il modello pre-addestrato, o solo il livello di classificazione superiore può essere messo a punto sui nuovi dati di addestramento. In questa modalità di apprendimento di trasferimento, puoi ottenere l'allenamento anche con un set di dati più piccolo.
Come utilizzare il nuovo algoritmo di classificazione delle immagini TensorFlow
Questa sezione descrive come utilizzare l'algoritmo di classificazione delle immagini TensorFlow con SDK Python di SageMaker. Per informazioni su come utilizzarlo dall'interfaccia utente di Studio, vedere SageMaker JumpStart.
L'algoritmo supporta l'apprendimento del trasferimento per i modelli pre-addestrati elencati in Modelli di hub TensorFlow. Ogni modello è identificato da un unico model_id
. Il codice seguente mostra come ottimizzare MobileNet V2 1.00 224 identificato da model_id
tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4
su un set di dati di addestramento personalizzato. Per ciascuno model_id
, al fine di avviare un lavoro di formazione SageMaker tramite il Estimator classe di SageMaker Python SDK, è necessario recuperare l'URI dell'immagine Docker, l'URI dello script di addestramento e l'URI del modello pre-addestrato tramite le funzioni di utilità fornite in SageMaker. L'URI dello script di addestramento contiene tutto il codice necessario per l'elaborazione dei dati, il caricamento del modello pre-addestrato, l'addestramento del modello e il salvataggio del modello addestrato per l'inferenza. L'URI del modello pre-addestrato contiene la definizione dell'architettura del modello pre-addestrato ei parametri del modello. Si noti che l'URI dell'immagine Docker e l'URI dello script di addestramento sono gli stessi per tutti i modelli di classificazione delle immagini TensorFlow. L'URI del modello pre-addestrato è specifico per il modello particolare. I tarball dei modelli pre-addestrati sono stati pre-scaricati da TensorFlow Hub e salvati con la firma del modello appropriata in Servizio di archiviazione semplice Amazon (Amazon S3), in modo tale che il processo di addestramento venga eseguito in isolamento di rete. Vedere il codice seguente:
Con questi artefatti di addestramento specifici del modello, puoi costruire un oggetto di Estimator classe:
Successivamente, per trasferire l'apprendimento sul set di dati personalizzato, potrebbe essere necessario modificare i valori predefiniti degli iperparametri di addestramento, elencati in iperparametri. Puoi recuperare un dizionario Python di questi iperparametri con i loro valori predefiniti chiamando hyperparameters.retrieve_default
, aggiornali secondo necessità, quindi passali alla classe Estimator. Si noti che i valori predefiniti di alcuni degli iperparametri sono diversi per i diversi modelli. Per i modelli di grandi dimensioni, la dimensione del lotto predefinita è più piccola e il train_only_top_layer
l'iperparametro è impostato su True
. L'iperparametro Train_only_top_layer
definisce quali parametri del modello cambiano durante il processo di messa a punto. Se train_only_top_layer
is True
, i parametri dei livelli di classificazione cambiano e il resto dei parametri rimane costante durante il processo di messa a punto. D'altra parte, se train_only_top_layer
is False
, tutti i parametri del modello vengono messi a punto. Vedere il codice seguente:
Il codice seguente fornisce un set di dati di addestramento predefinito ospitato nei bucket S3. Forniamo il tf_flowers
set di dati come set di dati predefinito per la messa a punto dei modelli. Il set di dati comprende immagini di cinque tipi di fiori. Il set di dati è stato scaricato da TensorFlow sotto il Licenza Apache 2.0.
Infine, per avviare il lavoro di formazione SageMaker per la messa a punto del modello, chiama .fit
sull'oggetto della classe Estimator, passando la posizione S3 del set di dati di addestramento:
Per ulteriori informazioni su come utilizzare il nuovo algoritmo di classificazione delle immagini SageMaker TensorFlow per trasferire l'apprendimento su un set di dati personalizzato, distribuire il modello ottimizzato, eseguire l'inferenza sul modello distribuito e distribuire il modello pre-addestrato così com'è senza prima eseguire la messa a punto su un set di dati personalizzato, vedere il seguente notebook di esempio: Introduzione a SageMaker TensorFlow – Classificazione delle immagini.
Interfaccia di input/output per l'algoritmo di classificazione delle immagini TensorFlow
Puoi mettere a punto ciascuno dei modelli pre-addestrati elencati in Modelli di hub TensorFlow a un dato set di dati comprendente immagini appartenenti a un numero qualsiasi di classi. L'obiettivo è ridurre al minimo l'errore di previsione sui dati di input. Il modello restituito dall'ottimizzazione può essere ulteriormente distribuito per l'inferenza. Di seguito sono riportate le istruzioni su come formattare i dati di addestramento per l'immissione nel modello:
- Ingresso – Una directory con tante sottodirectory quante sono le classi. Ogni sottodirectory dovrebbe avere immagini appartenenti a quella classe in formato .jpg, .jpeg o .png.
- Uscita – Un modello perfezionato che può essere distribuito per l'inferenza o può essere ulteriormente addestrato utilizzando l'addestramento incrementale. Una firma di pre-elaborazione e post-elaborazione viene aggiunta al modello ottimizzato in modo tale che accetti l'immagine .jpg grezza come input e restituisca le probabilità di classe. Insieme ai modelli viene salvato un file di mappatura degli indici di classe alle etichette di classe.
La directory di input dovrebbe essere simile all'esempio seguente se i dati di addestramento contengono immagini di due classi: roses
ed dandelion
. Il percorso S3 dovrebbe essere simile s3://bucket_name/input_directory/
. Nota il finale /
è obbligatorio. I nomi delle cartelle e roses
, dandelion
e i nomi dei file .jpg possono essere qualsiasi cosa. Il file di mappatura dell'etichetta salvato insieme al modello addestrato nel bucket S3 mappa i nomi delle cartelle rose e dandelion agli indici nell'elenco delle probabilità di classe che il modello restituisce. La mappatura segue l'ordine alfabetico dei nomi delle cartelle. Nell'esempio seguente, corrisponde all'indice 0 nell'elenco di output del modello dandelion
e l'indice 1 corrisponde a roses
.
Inferenza con l'algoritmo di classificazione delle immagini TensorFlow
I modelli generati possono essere ospitati per l'inferenza e supportare i formati di immagine codificati .jpg, .jpeg e .png come application/x-image
tipo di contenuto. L'immagine di input viene ridimensionata automaticamente. L'output contiene i valori di probabilità, le etichette di classe per tutte le classi e l'etichetta prevista corrispondente all'indice di classe con la probabilità più alta, codificata in formato JSON. Il modello di classificazione delle immagini TensorFlow elabora una singola immagine per richiesta e genera solo una riga in JSON. Quello che segue è un esempio di risposta in JSON:
If accept
è impostato su application/json
, quindi il modello emette solo probabilità. Per ulteriori dettagli sull'addestramento e sull'inferenza, vedere il quaderno di esempio Introduzione a SageMaker TensorFlow – Classificazione delle immagini.
Usa gli algoritmi integrati di SageMaker tramite l'interfaccia utente di JumpStart
Puoi anche utilizzare la classificazione delle immagini SageMaker TensorFlow e qualsiasi altro algoritmo integrato con pochi clic tramite l'interfaccia utente di JumpStart. JumpStart è una funzionalità di SageMaker che consente di addestrare e distribuire algoritmi integrati e modelli pre-addestrati da vari framework ML e hub modello attraverso un'interfaccia grafica. Ti consente inoltre di distribuire soluzioni ML complete che mettono insieme modelli ML e vari altri servizi AWS per risolvere un caso d'uso mirato. Guardare Esegui la classificazione del testo con Amazon SageMaker JumpStart utilizzando i modelli TensorFlow Hub e Hugging Face per scoprire come utilizzare JumpStart per addestrare un algoritmo o un modello pre-addestrato in pochi clic.
Conclusione
In questo post, abbiamo annunciato il lancio dell'algoritmo integrato di classificazione delle immagini SageMaker TensorFlow. Abbiamo fornito un codice di esempio su come trasferire l'apprendimento su un set di dati personalizzato utilizzando un modello pre-addestrato da TensorFlow Hub utilizzando questo algoritmo. Per ulteriori informazioni, controlla documentazione e la quaderno di esempio.
Circa gli autori
Dottor Ashish Khetan è un Senior Applied Scientist con Algoritmi integrati di Amazon SageMaker e aiuta a sviluppare algoritmi di apprendimento automatico. Ha conseguito il dottorato di ricerca presso l'Università dell'Illinois Urbana-Champaign. È un ricercatore attivo nell'apprendimento automatico e nell'inferenza statistica e ha pubblicato molti articoli in conferenze NeurIPS, ICML, ICLR, JMLR, ACL ed EMNLP.
Dott. Vivek Madan è uno scienziato applicato con il Team di Amazon SageMaker JumpStart. Ha conseguito il dottorato di ricerca presso l'Università dell'Illinois Urbana-Champaign ed è stato ricercatore post-dottorato presso la Georgia Tech. È un ricercatore attivo nell'apprendimento automatico e nella progettazione di algoritmi e ha pubblicato articoli in conferenze EMNLP, ICLR, COLT, FOCS e SODA.
João Moura è un architetto specializzato in soluzioni AI/ML presso Amazon Web Services. Si concentra principalmente sui casi d'uso della NLP e aiuta i clienti a ottimizzare la formazione e l'implementazione del modello di deep learning. È anche un attivo sostenitore di soluzioni ML a basso codice e hardware specializzato in ML.
Raju Penmatcha è un Senior AI/ML Specialist Solutions Architect presso AWS. Lavora con clienti dell'istruzione, del governo e del non profit su progetti relativi all'apprendimento automatico e all'intelligenza artificiale, aiutandoli a creare soluzioni utilizzando AWS. Quando non aiuta i clienti, gli piace viaggiare in posti nuovi.
- AI
- oh arte
- generatore d'arte
- un robot
- Amazon Sage Maker
- intelligenza artificiale
- certificazione di intelligenza artificiale
- intelligenza artificiale nel settore bancario
- robot di intelligenza artificiale
- robot di intelligenza artificiale
- software di intelligenza artificiale
- Apprendimento automatico di AWS
- blockchain
- conferenza blockchain ai
- geniale
- intelligenza artificiale conversazionale
- criptoconferenza ai
- dall's
- apprendimento profondo
- google ai
- machine learning
- Platone
- platone ai
- Platone Data Intelligence
- Gioco di Platone
- PlatoneDati
- gioco di plato
- scala ai
- sintassi
- zefiro