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:

  • Maschera-RCNN
  • Retinanet
  • ShapeMask

Prima di poter addestrare un modello su una Cloud TPU, devi preparare il e i dati di Google Cloud.

Questo documento descrive come preparare il set di dati COCO per di modelli in esecuzione su Cloud TPU. Il set di dati COCO può essere preparato solo hanno creato una VM di 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 il set di dati COCO in un Il bucket Cloud Storage richiede circa 2 ore.

  1. In Cloud Shell, configura gcloud con il tuo progetto ID.

    export PROJECT_ID=project-id
    gcloud config set project ${PROJECT_ID}
  2. In Cloud Shell, crea un bucket Cloud Storage utilizzando il comando seguente:

    gcloud storage buckets create gs://bucket-name --project=${PROJECT_ID} --location=us-central2
  3. Crea una VM di 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
  4. Connettiti alla VM di 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 a username@vm-name.

  5. Configura due variabili, una per il bucket di archiviazione creati 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
  6. 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"
  7. Esegui lo script download_and_preprocess_coco.sh per convertire il set di dati COCO in un set di file TFRecord (*.tfrecord) che l'addestramento come previsto dall'applicazione.

    (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. Consente di generare file *.tfrecord nella directory dei dati locali. Lo script di download e conversione COCO richiede circa un'ora.

  8. Copia i dati nel bucket Cloud Storage.

    Dopo aver convertito i dati nel formato TFRecord, copiali dallo spazio di archiviazione locale al bucket Cloud Storage con 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}
  9. Disconnettiti dalla VM di Compute Engine:

    (vm)$ exit

    Il tuo prompt dovrebbe ora essere username@projectname, a indicare che ti trovi in Cloud Shell.

  10. Elimina la VM di Compute Engine:

    $ gcloud compute instances delete vm-name \
    --zone=us-central2-b