COCO-Dataset herunterladen, vorverarbeiten und hochladen
COCO ist ein umfangreiches Dataset für Objekterkennung, Segmentierung und Untertitelung. Unter anderem verwenden folgende Modelle für maschinelles Lernen das COCO-Dataset:
- Mask RCNN
- RetinaNet
- ShapeMask
Bevor Sie ein Modell auf einer Cloud TPU trainieren können, müssen Sie die Trainingsdaten vorbereiten.
In diesem Dokument wird beschrieben, wie Sie das COCO-Dataset für die
die auf Cloud TPU ausgeführt werden. Das COCO-Dataset kann erst vorbereitet werden, nachdem Sie eine Compute Engine-VM erstellt haben. Das Skript zur Vorbereitung der Daten download_and_preprocess_coco.sh
ist auf der VM installiert und muss auf der VM ausgeführt werden.
Nachdem Sie die Daten mit dem Skript download_and_preprocess_coco.sh
vorbereitet haben, können Sie die Cloud TPU aufrufen und das Training ausführen.
Das vollständige Herunterladen, Vorverarbeiten und Hochladen des COCO-Datasets in einen Cloud Storage-Bucket dauert ungefähr zwei Stunden.
Konfigurieren Sie
gcloud
in Cloud Shell mit Ihrer Projekt-ID.export PROJECT_ID=project-id gcloud config set project ${PROJECT_ID}
Erstellen Sie in Ihrer Cloud Shell mit folgendem Befehl einen Cloud Storage-Bucket:
gcloud storage buckets create gs://bucket-name --project=${PROJECT_ID} --location=us-central2
Erstellen Sie eine Compute Engine-VM, um das Dataset herunterzuladen und vorzuverarbeiten. Weitere Informationen finden Sie unter Compute Engine-Instanz erstellen und starten
$ 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
Stellen Sie eine SSH-Verbindung zur Compute Engine-VM her:
$ gcloud compute ssh vm-name --zone=us-central2-b
Wenn Sie eine Verbindung zur VM herstellen, ändert sich die Shell-Eingabeaufforderung von
username@projectname
inusername@vm-name
.Richten Sie zwei Variablen ein, eine für den zuvor erstellten Storage-Bucket und eine für das Verzeichnis, das die Trainingsdaten (
DATA_DIR
) im Storage-Bucket enthält.(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
Installieren Sie die Pakete, die für die Vorverarbeitung der Daten erforderlich sind.
(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"
Zum Umwandeln das Skript
download_and_preprocess_coco.sh
ausführen COCO-Dataset in eine Reihe von TFRecord-Dateien (*.tfrecord
) aufteilt, die die Anwendung erwartet.(vm)$ git clone https://github.com/tensorflow/tpu.git (vm)$ sudo bash tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco
Dadurch werden die erforderlichen Bibliotheken installiert und das Skript für die Vorverarbeitung ausgeführt. Dann werden
*.tfrecord
-Dateien in Ihr lokales Datenverzeichnis ausgegeben. Der COCO-Download und das Ausführen des Konvertierungsskripts dauern ungefähr eine Stunde.Kopieren Sie die Daten in Ihren Cloud Storage-Bucket.
Nachdem Sie die Daten in das TFRecord-Format konvertiert haben, kopieren Sie sie aus dem lokalen Speicher mit der gcloud CLI in Ihren Cloud Storage-Bucket. Die Anmerkungsdateien müssen ebenfalls kopiert werden. Diese Dateien helfen dabei, die Leistung des Modells zu validieren.
(vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR} (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
Trennen Sie die Verbindung zur Compute Engine-VM:
(vm)$ exit
Die Eingabeaufforderung sollte nun
username@projectname
lauten und angeben, dass Sie sich in Cloud Shell befinden.Löschen Sie Ihre Compute Engine-VM:
$ gcloud compute instances delete vm-name \ --zone=us-central2-b