L'addestramento con algoritmi integrati in AI Platform Training ti consente di inviare il tuo set di dati e addestrare un modello senza scrivere codice di addestramento. In questa pagina viene spiegato come funziona l'algoritmo TabNet integrato e come utilizzarlo.
Panoramica
Questo algoritmo integrato esegue la pre-elaborazione e l'addestramento:
- Pre-elaborazione: l'addestramento con AI Platform elabora la tua combinazione di dati categorici e numerici in un set di dati interamente numerico al fine di prepararla per l'addestramento.
- Addestramento: utilizzando il set di dati e i parametri del modello forniti, AI Platform Training esegue l'addestramento mediante lo strumento di stima personalizzato di TensorFlow.
Limitazioni
Le seguenti funzionalità non sono supportate per l'addestramento con l'algoritmo TabNet integrato:
- Addestramento con più GPU. Gli algoritmi integrati utilizzano solo una GPU alla volta. Per sfruttare appieno l'addestramento con più GPU su un'unica macchina, devi creare un'applicazione di addestramento. Consulta ulteriori informazioni sui tipi di macchina.
- Addestramento con TPU. Per l'addestramento con TPU, devi creare un'applicazione di addestramento. Scopri come eseguire un job di addestramento con le TPU.
- Formazione distribuita. Per eseguire un job di addestramento distribuito su AI Platform Training, devi creare un'applicazione di addestramento.
Tipi di macchine supportati
Sono supportati i seguenti livelli e tipi di macchine di AI Platform Training:
BASIC
livello di scalabilità- Livello di scalabilità
CUSTOM
con uno qualsiasi dei tipi di macchine di Compute Engine supportati da AI Platform Training. CUSTOM
del livello di scalabilità con uno dei seguenti tipi di macchina legacy:standard
large_model
complex_model_s
complex_model_m
complex_model_l
standard_gpu
standard_p100
standard_v100
large_model_v100
Formatta i dati di input
Ogni riga di un set di dati rappresenta un'istanza e ogni colonna di un set di dati rappresenta un valore della funzionalità. La colonna target rappresenta il valore da prevedere.
Prepara il file CSV
I dati di input devono essere un file CSV con codifica UTF-8. Se i dati di addestramento sono composti solo da valori numerici e categorici, puoi utilizzare il nostro modulo di pre-elaborazione per inserire valori numerici mancanti, suddividere il set di dati e rimuovere le righe con più del 10% dei valori mancanti. In caso contrario, puoi eseguire l'addestramento senza attivare automaticamente la pre-elaborazione.
Devi preparare il file CSV di input per soddisfare i seguenti requisiti:
- Rimuovi la riga di intestazione. La riga di intestazione contiene le etichette per ogni colonna. Rimuovi la riga di intestazione per evitare di inviarla con le altre istanze di dati come parte dei dati di addestramento.
- Assicurati che la colonna di destinazione sia la prima colonna. La colonna target contiene il valore che stai cercando di prevedere. Per un algoritmo di classificazione, tutti i valori nella colonna di destinazione sono una classe o una categoria. Per un algoritmo di regressione, tutti i valori nella colonna di destinazione sono un valore numerico.
Gestire i valori interi
Il significato dei valori interi può essere ambiguo, il che rende le colonne di valori interi problematici nella pre-elaborazione automatica. AI Platform Training determina automaticamente come gestire i valori interi. Per impostazione predefinita:
- Se ogni valore intero è univoco, la colonna viene trattata come chiavi di istanza.
- Se ci sono solo alcuni valori interi univoci, la colonna viene considerata come categoria.
- In caso contrario, i valori nella colonna vengono convertiti in floating e trattati come valori numerici.
Per eseguire l'override di queste determinazioni predefinite:
- Se i dati devono essere considerati come numerici, converti tutti i valori interi nella colonna in virgola mobile, ad esempio {101.0, 102.0, 103.0}
- Se i dati devono essere trattati come categorici, anteponi un prefisso non numerico a tutti i valori interi nella colonna, ad esempio {code_101, codice_102, code_103}
Inviare un job di addestramento TabNet
Questa sezione spiega come inviare un job di addestramento utilizzando l'algoritmo TabNet integrato.
Puoi trovare brevi spiegazioni di ogni iperparametro nella console Google Cloud e una spiegazione più completa nel riferimento per l'algoritmo TabNet integrato.
Console
Vai alla pagina AI Platform Training Jobs di AI Platform nella console Google Cloud:
Fai clic sul pulsante Nuovo job di addestramento. Fai clic su Addestramento con algoritmo integrato tra le opzioni visualizzate di seguito.
Nella pagina Crea un nuovo job di addestramento, seleziona TabNet e fai clic su Avanti.
Per scoprire di più su tutti i parametri disponibili, segui i link nella console Google Cloud e consulta il riferimento TabNet integrato.
gcloud
Imposta le variabili di ambiente per il job, inserendo
[VALUES-IN-BRACKETS]
con i tuoi valori:# Specify the name of the Cloud Storage bucket where you want your # training outputs to be stored, and the Docker container for # your built-in algorithm selection. BUCKET_NAME='[YOUR-BUCKET-NAME]' IMAGE_URI='gcr.io/cloud-ml-algos/tab_net:latest' # Specify the Cloud Storage path to your training input data. TRAINING_DATA='gs://[YOUR_BUCKET_NAME]/[YOUR_FILE_NAME].csv' DATASET_NAME='census' ALGORITHM='tabnet' MODEL_TYPE='classification' DATE='date '+%Y%m%d_%H%M%S'' MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}" JOB_ID="${MODEL_NAME}_${DATE}" JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
Invia il job di addestramento con
gcloud ai-platform jobs training submit
:gcloud ai-platform jobs submit training $JOB_ID \ --master-image-uri=$IMAGE_URI --scale-tier=BASIC \ --job-dir=$JOB_DIR \ -- \ --max_steps=2000 \ --preprocess \ --model_type=$MODEL_TYPE \ --batch_size=4096 \ --learning_rate=0.01 \ --training_data_path=$TRAINING_DATA_PATH
Monitora lo stato del job di addestramento visualizzando i log con
gcloud
. Fai riferimento agcloud ai-platform jobs describe
egcloud ai-platform jobs stream-logs
.gcloud ai-platform jobs describe ${JOB_ID} gcloud ai-platform jobs stream-logs ${JOB_ID}
Come funziona la pre-elaborazione
La pre-elaborazione automatica funziona per dati categorici e numerici. La routine di pre-elaborazione innanzitutto analizza e poi trasforma i dati.
Analisi
Innanzitutto, AI Platform Training rileva automaticamente il tipo di dati di ogni colonna, identifica in che modo deve essere trattato ogni colonna e calcola alcune statistiche dei dati al suo interno. Queste informazioni vengono acquisite nel file metadata.json
.
AI Platform Training analizza il tipo della colonna di destinazione per identificare se il set di dati specificato è destinato alla regressione o alla classificazione. Se questa analisi è in conflitto con la tua selezione per model_type
, viene restituito un errore. Descrivi in modo esplicito la modalità di trattamento della colonna di destinazione formattando in modo chiaro i dati in casi ambigui.
Tipo: la colonna può essere numerica o categorica.
Trattamento: AI Platform Training identifica come trattare ogni colonna nel seguente modo:
- Se la colonna include un singolo valore in tutte le righe, viene trattata come una costante.
- Se la colonna è categorica e include valori univoci in tutte le righe, viene trattata come row_identifier.
- Se la colonna è numerica con valori decimali o se è numerica con valori interi e contiene molti valori unici, la colonna viene trattata come numerica.
- Se la colonna è numerica con valori interi e contiene pochi valori unici sufficienti, viene trattata come colonna categorica in cui i valori interi sono identity o vocabulary.
- Si considera che una colonna abbia alcuni valori univoci se il numero di valori univoci nella colonna è inferiore al 20% del numero di righe nel set di dati di input.
- Se la colonna è categorica con un'alta cardinalità, la colonna viene trattata con hashing, dove il numero di bucket hash è uguale alla radice quadrata del numero di valori unici nella colonna.
- Una colonna categorica ha una cardinalità elevata se il numero di valori unici è maggiore della radice quadrata del numero di righe nel set di dati.
- Se la colonna è categorica e il numero di valori unici è inferiore o uguale alla radice quadrata del numero di righe nel set di dati, la colonna viene trattata come una normale colonna categorica con vocabolario.
Statistiche: AI Platform Training calcola le seguenti statistiche, in base al tipo e alla modalità di trattamento delle colonne identificate, da utilizzare per trasformare la colonna in una fase successiva.
- Se la colonna è numerica, vengono calcolati i valori medi e di varianza.
- Se la colonna è di tipo categorico e il trattamento è rappresentato da identità o vocabolario, i valori distinti vengono estratti dalla colonna.
- Se la colonna è di tipo categorico e il trattamento prevede l'hashing, il numero di bucket di hash viene calcolato in base alla cardinalità della colonna.
Trasformazione
Dopo che l'analisi iniziale del set di dati è stata completata, AI Platform Training trasforma i tuoi dati in base ai tipi, ai trattamenti e alle statistiche applicati al set di dati. AI Platform Training esegue trasformazioni nel seguente ordine:
- Suddividi il set di dati di addestramento in set di dati di convalida e test se specifichi le percentuali.
- Rimuove le righe che contengono più del 10% delle caratteristiche mancanti.
- Riempie i valori numerici mancanti utilizzando la media della colonna.
Esempi di trasformazioni
Le righe con il 10% dei valori mancanti vengono rimosse. Negli esempi seguenti, supponiamo che la riga abbia 10 valori. Ogni riga di esempio è troncata per semplicità.
Problema di riga | Valori originali | Valori trasformati | Spiegazione |
---|---|---|---|
Riga di esempio senza valori mancanti | [3, 0,45, ..., 'frutta', 0, 1] |
[3, 0,45, ..., 1, 0, 0, 0, 1] |
La stringa "frutta", viene trasformata nei valori "1, 0, 0" nella codifica one-hot. Questo avviene più tardi nel grafico TensorFlow. |
Troppi valori mancanti | [3, 0,45, ..., 'frutta', __, __] |
Riga rimossa | Più del 10% dei valori nella riga risulta mancante. |
Valore numerico mancante | [3, 0,45, ..., 'frutta), 0, __] |
[3, 0,45, ..., 1, 0, 0, 0, 0,54] |
|
Valore categorico mancante | [3, 0,45, ..., __, 0, 1] |
[3, 0,45, ..., 0, 0, 0, 0, 1] |
|
Colonne funzionalità
Durante la trasformazione, le colonne non vengono elaborate. I metadati prodotti durante l'analisi vengono invece trasferiti ad AI Platform Training per creare le colonne delle funzionalità di conseguenza:
Tipo di colonna | Trattamento colonne | Colonna della funzionalità risultante |
---|---|---|
Numerico | (Tutti i tipi di trattamento a colonne) |
tf.feature_column.numeric_column
I valori medi e di varianza vengono utilizzati per standardizzare i valori: |
Categorico | Identità |
tf.feature_column.categorical_column_with_identity
|
Categorico | Vocabolario |
tf.feature_column.categorical_column_with_vocabulary_list
|
Categorico | Hashing |
tf.feature_column.categorical_column_with_hash_bucket
|
Categorico | Identificatore costante o di riga | Ignorato. Nessuna colonna funzione creata. |
Al termine della pre-elaborazione automatica, AI Platform Training carica il set di dati elaborato nel bucket Cloud Storage nella directory specificata nella richiesta di job.
Ulteriori risorse di apprendimento
- Scopri di più sulle colonne delle funzionalità di TensorFlow.