Télécharger, prétraiter et importer l'ensemble de données COCO
COCO est un ensemble de données de détection d'objets, de segmentation et de sous-titrage à grande échelle. Les modèles de machine learning qui utilisent l'ensemble de données COCO sont les suivants :
- Mask-RCNN
- Retinanet
- ShapeMask
Avant de pouvoir entraîner un modèle sur un Cloud TPU, vous devez préparer les données d'entraînement.
Ce document explique comment préparer l'ensemble de données COCO pour les modèles exécutés sur Cloud TPU. Vous ne pouvez suivre cette procédure qu'après avoir créé une VM Compute Engine. Le script utilisé pour préparer les données, download_and_preprocess_coco.sh
, est installé sur la VM et doit être exécuté sur celle-ci.
Après avoir préparé les données en exécutant le script download_and_preprocess_coco.sh
, vous pouvez poursuivre avec le Cloud TPU et exécuter l'entraînement.
Le téléchargement, le prétraitement et l'importation de l'ensemble de données COCO dans un bucket Cloud Storage prend environ deux heures en tout.
Dans Cloud Shell, configurez
gcloud
avec l'ID de votre projet.export PROJECT_ID=project-id gcloud config set project ${PROJECT_ID}
Dans Cloud Shell, créez un bucket Cloud Storage à l'aide de la commande suivante :
gcloud storage buckets create gs://bucket-name --project=${PROJECT_ID} --location=us-central2
Créez une VM Compute Engine pour télécharger et prétraiter l'ensemble de données. Pour en savoir plus, consultez Créer et démarrer une instance 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 \ --scopes=https://www.googleapis.com/auth/cloud-platform
Connectez-vous à la VM Compute Engine à l'aide de SSH :
$ gcloud compute ssh vm-name --zone=us-central2-b
Lorsque vous vous connectez à la VM, votre invite shell passe de
username@projectname
àusername@vm-name
.Configurez deux variables : une pour le bucket de stockage créé précédemment et une pour le répertoire contenant les données d'entraînement (
DATA_DIR
) dans le bucket de stockage.(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
Installez les packages nécessaires au prétraitement des données.
(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" && \ pip3 install protobuf==3.19.0 tensorflow==2.11.0 numpy==1.26.4
Exécutez le script
download_and_preprocess_coco.sh
pour convertir l'ensemble de données COCO en un ensemble de fichiers TFRecord (*.tfrecord
), ce qui correspond au format attendu par l'application d'entraînement.(vm)$ git clone https://github.com/tensorflow/tpu.git (vm)$ sudo -E bash tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco
Cela installe les bibliothèques requises et exécute le script de prétraitement. Les fichiers
*.tfrecord
sont générés dans votre répertoire de données local. L'exécution du script de téléchargement et de conversion COCO prend environ une heure.Copiez les données dans votre bucket Cloud Storage.
Après avoir converti les données au format TFRecord, copiez-les depuis l'espace de stockage local vers votre bucket Cloud Storage à l'aide de gcloud CLI. Vous devez également copier les fichiers d'annotations. Ces fichiers vous aident à valider les performances du modèle.
(vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR} (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
Effectuer un nettoyage
Suivez ces étapes pour nettoyer vos ressources Compute Engine et Cloud Storage.
Déconnectez-vous de la VM Compute Engine :
(vm)$ exit
Supprimez votre VM Compute Engine :
$ gcloud compute instances delete vm-name \ --zone=us-central2-b
Supprimez votre bucket Cloud Storage et son contenu :
$ gcloud storage rm -r gs://bucket-name $ gcloud storage buckets delete gs://bucket-name