Como fazer o download, o pré-processamento e o upload do conjunto de dados COCO
O COCO é um conjunto de dados de detecção, segmentação e legendagem de objetos em grande escala. Os modelos de aprendizado de máquina que usam o conjunto de dados COCO incluem:
- Máscara RCNN
- RetinaNet
- ShapeMask
Antes de treinar um modelo em um Cloud TPU, você precisa preparar os dados de treinamento.
Este documento descreve como preparar o conjunto de dados COCO para
que são executados no Cloud TPU. O conjunto de dados COCO só pode ser preparado depois que você cria uma VM do Compute Engine. O script usado para preparar os dados, download_and_preprocess_coco.sh
, é instalado na VM e precisa ser executado nela.
Depois de preparar os dados executando o script download_and_preprocess_coco.sh
, você poderá abrir o Cloud TPU e executar o treinamento.
Fazer o download, o pré-processamento e o upload completos do conjunto de dados COCO para um em um bucket do Cloud Storage, que leva aproximadamente 2 horas.
No Cloud Shell, configure o
gcloud
com seu projeto ID.export PROJECT_ID=project-id gcloud config set project ${PROJECT_ID}
No Cloud Shell, crie um bucket do Cloud Storage usando o seguinte comando:
gcloud storage buckets create gs://bucket-name --project=${PROJECT_ID} --location=us-central2
Crie uma VM do Compute Engine para fazer o download e o pré-processamento do conjunto de dados. Para mais informações, consulte Criar e iniciar uma instância do 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
Conecte-se à VM do Compute Engine usando SSH:
$ gcloud compute ssh vm-name --zone=us-central2-b
Quando você se conecta à VM, o prompt do shell muda de
username@projectname
parausername@vm-name
.Configure duas variáveis, uma para o bucket de armazenamento e outra para o diretório que contém os dados de treinamento (
DATA_DIR
) no bucket de armazenamento.(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
Instale os pacotes necessários para pré-processar os dados.
(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"
Execute o script
download_and_preprocess_coco.sh
para converter o conjunto de dados COCO em um conjunto de arquivos TFRecord (*.tfrecord
) que o treinamento esperado pelo aplicativo.(vm)$ git clone https://github.com/tensorflow/tpu.git (vm)$ sudo bash tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco
Isso instala as bibliotecas necessárias e executa o script de pré-processamento. Ele gera arquivos
*.tfrecord
no diretório de dados locais. O script de download e conversão do COCO leva aproximadamente uma hora para ser concluído.Copie os dados para o bucket do Cloud Storage.
Depois de converter os dados para o formato TFRecord, copie-os do armazenamento local para o bucket do Cloud Storage usando a CLI gcloud. Você deve copiar os arquivos de anotação. Esses arquivos ajudam a validar o comportamento desempenho.
(vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR} (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
Encerre a conexão com a VM do Compute Engine:
(vm)$ exit
Agora, o prompt precisa ser
username@projectname
, mostrando que você está no Cloud Shell.Exclua a VM do Compute Engine:
$ gcloud compute instances delete vm-name \ --zone=us-central2-b