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, vous devez préparer les données d'entraînement.
Ce document explique comment préparer l'ensemble de données COCO pour
qui s'exécutent 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 faire intervenir la ressource Cloud TPU et exécuter l'entraînement.
Pour télécharger, prétraiter et importer entièrement le jeu de données COCO dans un Le processus avec le bucket Cloud Storage prend environ deux heures.
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 la section 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
Connectez-vous en SSH à la VM Compute Engine:
$ gcloud compute ssh vm-name --zone=us-central2-b
Lorsque vous vous connectez à la VM, votre invite de shell passe de
username@projectname
àusername@vm-name
.Configurez deux variables, l'une pour le bucket de stockage créé précédemment et une pour le répertoire qui contient 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"
Exécutez le script
download_and_preprocess_coco.sh
pour convertir l'ensemble de données COCO en 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 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. Elle génère les fichiers
*.tfrecord
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 le stockage local dans votre bucket Cloud Storage à l'aide de gcloud CLI. Vous devez copier également les fichiers d'annotation. Ces fichiers permettent de valider des performances.
(vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR} (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
Déconnectez-vous de la VM Compute Engine :
(vm)$ exit
Votre invite devrait maintenant être
username@projectname
, indiquant que vous êtes dans Cloud Shell.Supprimez votre VM Compute Engine:
$ gcloud compute instances delete vm-name \ --zone=us-central2-b