下載、預先處理,及上傳 COCO 資料集
COCO 是大規模物件偵測、區隔和說明文字資料集。使用 COCO 資料集的機器學習模型包括如下:
- Mask-RCNN
- Retinanet
- ShapeMask
您必須先準備訓練資料,才能在 Cloud TPU 上訓練模型。
本文說明如何為在 Cloud TPU 上執行的模型準備 COCO 資料集。您必須先建立 Compute Engine VM,才能準備 COCO 資料集。用於準備資料的指令碼 download_and_preprocess_coco.sh
會安裝在 VM 上,且必須在 VM 上執行。
透過執行 download_and_preprocess_coco.sh
指令碼準備資料後,您可以啟動 Cloud TPU 並執行訓練。
完整下載、預先處理 COCO 資料集,並將其上傳至 Cloud Storage 值區,大約需要 2 小時。
在 Cloud Shell 中,使用專案 ID 設定
gcloud
。export PROJECT_ID=project-id gcloud config set project ${PROJECT_ID}
在 Cloud Shell 中,使用下列指令建立 Cloud Storage 值區:
gcloud storage buckets create gs://bucket-name --project=${PROJECT_ID} --location=us-central2
建立 Compute Engine VM 來下載及預先處理資料集。詳情請參閱「建立及啟動 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
使用 SSH 連線至 Compute Engine VM:
$ gcloud compute ssh vm-name --zone=us-central2-b
連線至 VM 時,殼層提示會從
username@projectname
變更為username@vm-name
。設定兩個變數,一個用於先前建立的儲存空間值區,另一個用於儲存空間值區中儲存訓練資料 (
DATA_DIR
) 的目錄。(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
安裝預先處理資料所需的套件。
(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
執行
download_and_preprocess_coco.sh
指令碼,將 COCO 資料集轉換為訓練應用程式預期會接收到的一組 TFRecord 檔案 (*.tfrecord
)。(vm)$ git clone https://github.com/tensorflow/tpu.git (vm)$ sudo -E bash tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco
該指令碼會安裝所需的程式庫,並執行預先處理指令碼,然後在您的本機資料目錄中輸出
*.tfrecord
檔案。下載及轉換 COCO 的指令碼大約需要 1 小時才能執行完畢。將資料複製到 Cloud Storage 值區。
將資料轉換為 TFRecord 格式後,請使用 gcloud 命令列將資料從本機儲存空間複製到 Cloud Storage 值區。您也必須複製註解檔案,這些檔案有助於驗證模型的效能。
(vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR} (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
清除所用資源
請按照下列步驟清理 Compute Engine 和 Cloud Storage 資源。
中斷 Compute Engine VM 連線:
(vm)$ exit
刪除 Compute Engine VM:
$ gcloud compute instances delete vm-name \ --zone=us-central2-b
刪除 Cloud Storage 值區及其內容:
$ gcloud storage rm -r gs://bucket-name $ gcloud storage buckets delete gs://bucket-name