Mengunduh, memproses terlebih dahulu, dan mengunggah {i>dataset <i}COCO

COCO adalah set data deteksi, segmentasi, dan teks keterangan objek berskala besar. Model machine learning yang menggunakan set data COCO meliputi:

  • Topeng-RCNN
  • Retinanet
  • ShapeMask

Sebelum dapat melatih model di Cloud TPU, Anda harus menyiapkan data pelatihan.

Topik ini menjelaskan cara menyiapkan set data COCO untuk model yang berjalan di Cloud TPU. Set data COCO hanya dapat disiapkan setelah Anda membuat VM Compute Engine. Skrip yang digunakan untuk menyiapkan data, download_and_preprocess_coco.sh, diinstal di VM dan harus dijalankan di VM.

Setelah menyiapkan data dengan menjalankan skrip download_and_preprocess_coco.sh, Anda dapat menampilkan Cloud TPU dan menjalankan pelatihan.

Untuk mendownload/melakukan prapemrosesan sepenuhnya dan mengupload set data COCO ke bucket Google Cloud Storage, memerlukan waktu sekitar 2 jam.

  1. Di Cloud Shell, konfigurasikan gcloud dengan project ID Anda.

    export PROJECT_ID=project-id
    gcloud config set project ${PROJECT_ID}
    
  2. Di Cloud Shell, buat bucket Cloud Storage menggunakan perintah berikut:

    gsutil mb -p ${PROJECT_ID} -c standard -l europe-west4 gs://bucket-name
    
  3. Luncurkan instance VM Compute Engine.

    Instance VM ini hanya akan digunakan untuk mendownload dan melakukan pra-proses set data COCO. Isi instance-name dengan nama yang Anda pilih.

    $ gcloud compute tpus execution-groups create \
     --vm-only \
     --name=instance-name \
     --zone=europe-west4-a \
     --disk-size=300 \
     --machine-type=n1-standard-16 \
     --tf-version=2.12.0
    

    Deskripsi flag perintah

    vm-only
    Buat VM saja. Secara default, perintah gcloud compute tpus execution-groups akan membuat VM dan Cloud TPU.
    name
    Nama Cloud TPU yang akan dibuat.
    zone
    Zona tempat Anda berencana membuat Cloud TPU.
    disk-size
    Ukuran hard disk dalam GB VM yang dibuat oleh perintah gcloud compute tpus execution-groups.
    machine-type
    Jenis mesin VM Compute Engine yang akan dibuat.
    tf-version
    Versi Tensorflow gcloud compute tpus execution-groups diinstal di VM.
  4. Jika Anda tidak login secara otomatis ke instance Compute Engine, login dengan menjalankan perintah ssh berikut. Saat Anda login ke VM, perintah shell Anda akan berubah dari username@projectname menjadi username@vm-name:

      $ gcloud compute ssh instance-name --zone=europe-west4-a
      

  5. Siapkan dua variabel, satu untuk bucket penyimpanan yang Anda buat sebelumnya dan satu lagi untuk direktori yang menyimpan data pelatihan (DATA_DIR) di bucket penyimpanan.

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    
    (vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
  6. Instal paket yang diperlukan untuk melakukan pra-pemrosesan data.

    (vm)$ sudo apt-get install -y python3-tk && \
      pip3 install --user Cython matplotlib opencv-python-headless pyyaml Pillow && \
      pip3 install --user "git+https://github.com/cocodataset/cocoapi#egg=pycocotools&subdirectory=PythonAPI"
    
  7. Jalankan skrip download_and_preprocess_coco.sh untuk mengonversi set data COCO menjadi kumpulan TFRecord (*.tfrecord) yang diharapkan oleh aplikasi pelatihan.

    (vm)$ git clone https://github.com/tensorflow/tpu.git
    (vm)$ sudo bash tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco
    

    Tindakan ini akan menginstal library yang diperlukan, lalu menjalankan skrip prapemrosesan. Ini menghasilkan sejumlah file *.tfrecord di direktori data lokal Anda. Skrip konversi dan download COCO memerlukan waktu sekitar 1 jam.

  8. Menyalin data ke bucket Cloud Storage

    Setelah mengonversi data menjadi TFRecords, salin data tersebut dari penyimpanan lokal ke bucket Cloud Storage menggunakan perintah gsutil. Anda juga harus menyalin file anotasi. File ini membantu memvalidasi performa model.

    (vm)$ gsutil -m cp ./data/dir/coco/*.tfrecord ${DATA_DIR}
    (vm)$ gsutil cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
    
  9. Membersihkan resource VM

    Setelah set data COCO dikonversi menjadi TFRecords dan disalin ke DATA_DIR di bucket Cloud Storage, Anda dapat menghapus instance Compute Engine.

    Putuskan koneksi dari instance Compute Engine:

    (vm)$ exit
    

    Perintah Anda sekarang akan menjadi username@projectname, yang menunjukkan bahwa Anda berada di Cloud Shell.

  10. Hapus instance Compute Engine Anda.

      $ gcloud compute instances delete instance-name
        --zone=europe-west4-a