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.
Di Cloud Shell, konfigurasikan
gcloud
dengan project ID Anda.export PROJECT_ID=project-id gcloud config set project ${PROJECT_ID}
Di Cloud Shell, buat bucket Cloud Storage menggunakan perintah berikut:
gsutil mb -p ${PROJECT_ID} -c standard -l europe-west4 gs://bucket-name
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.
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 dariusername@projectname
menjadiusername@vm-name
:$ gcloud compute ssh instance-name --zone=europe-west4-a
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
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"
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.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}
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.Hapus instance Compute Engine Anda.
$ gcloud compute instances delete instance-name --zone=europe-west4-a