Download, preelaborazione e caricamento del set di dati COCO
COCO è un set di dati di grandi dimensioni per il rilevamento, la segmentazione e l'inserimento di didascalie degli oggetti. I modelli di machine learning che utilizzano il set di dati COCO includono:
- Mask-RCNN
- Retinanet
- ShapeMask
Prima di poter addestrare un modello su una Cloud TPU, devi preparare i dati di addestramento.
Questo documento descrive come preparare il set di dati COCO per i modelli eseguiti su Cloud TPU. Il set di dati COCO può essere preparato solo dopo aver creato una VM Compute Engine. Lo script utilizzato per preparare i dati,
download_and_preprocess_coco.sh
,
è installato sulla VM e deve essere eseguito sulla VM.
Dopo aver preparato i dati eseguendo lo script download_and_preprocess_coco.sh
, puoi avviare Cloud TPU ed eseguire l'addestramento.
Per scaricare, pre-elaborare e caricare completamente il set di dati COCO in un bucket Cloud Storage, sono necessarie circa 2 ore.
In Cloud Shell, configura
gcloud
con l'ID progetto.export PROJECT_ID=project-id gcloud config set project ${PROJECT_ID}
In Cloud Shell, crea un bucket Cloud Storage utilizzando il seguente comando:
gcloud storage buckets create gs://bucket-name --project=${PROJECT_ID} --location=us-central2
Crea una VM Compute Engine per scaricare e pre-elaborare il set di dati. Per ulteriori informazioni, consulta Creare e avviare un'istanza Compute Engine.
$ gcloud compute instances create vm-name \ --zone=us-central2-b \ --image-family=ubuntu-2204-lts \ --image-project=ubuntu-os-cloud \ --machine-type=n1-standard-16 \ --boot-disk-size=300GB
Connettiti alla VM Compute Engine tramite SSH:
$ gcloud compute ssh vm-name --zone=us-central2-b
Quando ti connetti alla VM, il prompt della shell cambia da
username@projectname
ausername@vm-name
.Configura due variabili, una per il bucket di archiviazione creato in precedenza e una per la directory che contiene i dati di addestramento (
DATA_DIR
) nel bucket di archiviazione.(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
Installa i pacchetti necessari per pre-elaborare i dati.
(vm)$ sudo apt-get update && \ sudo apt-get install python3-pip && \ sudo apt-get install -y python3-tk && \ pip3 install --user Cython matplotlib opencv-python-headless pyyaml Pillow numpy absl-py tensorflow && \ pip3 install --user "git+https://github.com/cocodataset/cocoapi#egg=pycocotools&subdirectory=PythonAPI"
Esegui lo script
download_and_preprocess_coco.sh
per convertire il set di dati COCO in un insieme di file TFRecord (*.tfrecord
) previsti dall'applicazione di addestramento.(vm)$ git clone https://github.com/tensorflow/tpu.git (vm)$ sudo bash tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco
Vengono installate le librerie richieste ed eseguito lo script di preelaborazione. Genera file
*.tfrecord
nella directory dei dati locali. Lo script di download e conversione COCO richiede circa un'ora.Copia i dati nel tuo bucket Cloud Storage.
Dopo aver convertito i dati nel formato TFRecord, copiali dallo spazio di archiviazione locale nel bucket Cloud Storage utilizzando gcloud CLI. Devi anche copiare i file di annotazioni. Questi file consentono di convalidare le prestazioni del modello.
(vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR} (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
Disconnettiti dalla VM di Compute Engine:
(vm)$ exit
Il tuo prompt dovrebbe ora essere
username@projectname
, a indicare che ti trovi in Cloud Shell.Elimina la VM di Compute Engine:
$ gcloud compute instances delete vm-name \ --zone=us-central2-b