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 machine learning que usam o conjunto de dados COCO incluem:
- Mask-RCNN
- RetinaNet
- ShapeMask
Antes de treinar um modelo em um Cloud TPU, você precisa preparar os dados de treinamento.
Neste documento, descrevemos como preparar o conjunto de dados COCO para
modelos 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ê pode abrir o Cloud TPU e executar o treinamento.
O download, o pré-processamento e o upload completos do conjunto de dados COCO em um bucket do Cloud Storage levam aproximadamente duas horas.
No Cloud Shell, configure
gcloudcom o ID do projeto.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 \ --scopes=https://www.googleapis.com/auth/cloud-platform
Conecte-se à VM do Compute Engine usando SSH:
$ gcloud compute ssh vm-name --zone=us-central2-b
Quando você se conecta à VM, o prompt de shell muda de
username@projectnameparausername@vm-name.Configure duas variáveis: uma para o bucket de armazenamento criado anteriormente 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" && \ pip3 install protobuf==3.19.0 tensorflow==2.11.0 numpy==1.26.4
Execute o script
download_and_preprocess_coco.shpara converter o conjunto de dados COCO em um conjunto de arquivos TFRecord (*.tfrecord), que é esperado pelo aplicativo de treinamento.(vm)$ git clone https://github.com/tensorflow/tpu.git (vm)$ sudo -E 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. A saída são arquivos
*.tfrecordno diretório de dados local. 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 no formato TFRecord, copie-os do armazenamento local para o bucket do Cloud Storage usando a gcloud CLI. Também é preciso copiar os arquivos de anotação. Eles ajudam a validar o desempenho do modelo.
(vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR} (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
Limpeza
Siga as etapas abaixo para limpar os recursos do Compute Engine e do Cloud Storage.
Encerre a conexão com a VM do Compute Engine:
(vm)$ exit
Exclua a VM do Compute Engine:
$ gcloud compute instances delete vm-name \ --zone=us-central2-b
Exclua o bucket do Cloud Storage e o conteúdo dele:
$ gcloud storage rm -r gs://bucket-name $ gcloud storage buckets delete gs://bucket-name