COCO データセットのダウンロード、前処理、アップロード

COCO は、オブジェクト検出、セグメンテーション、およびキャプション生成のための大規模なデータセットです。COCO データセットを使用する機械学習モデルには次のものがあります。

  • Mask RCNN
  • RetinaNet
  • ShapeMask

Cloud TPU でモデルをトレーニングするには、その前に、トレーニング データを準備する必要があります。Cloud TPU を設定した時点から Cloud TPU の課金が開始されるため、Compute Engine VM の設定とデータセットの準備が完了してから Cloud TPU を設定することをおすすめします。

このトピックでは、Cloud TPU で実行するモデルの COCO データセットを準備する方法について説明します。Compute Engine VM を作成した後でのみ、COCO データセットを準備できます。データの準備に使用するスクリプト download_and_preprocess_coco.sh は、VM にインストールされ、VM で実行する必要があります。

download_and_preprocess_coco.sh スクリプトを実行してデータを準備したら、Cloud TPU を起動してトレーニングを実行できます。

COCO データセットを準備する

COCO データセットは Cloud Storage に保存されるため、作成したバケットの名前を指定してストレージ バケット変数を設定します。

(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco

download_and_preprocess_coco.sh スクリプトを実行して、COCO データセットを、トレーニング アプリケーションで想定される一連の TFRecord(*.tfrecord)に変換します。

(vm)$ sudo bash /usr/share/tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco

これにより、必要なライブラリがインストールされ、前処理スクリプトが実行されます。ローカルのデータ ディレクトリにいくつかの *.tfrecord ファイルが出力されます。COCO のダウンロードと変換スクリプトが完了するまでには約 1 時間かかります。

データを Cloud Storage バケットにコピーする

データを TFRecord に変換した後、gsutil コマンドを使用して、ローカル ストレージから Cloud Storage バケットに変換後のデータをコピーします。アノテーション ファイルもコピーする必要があります。アノテーション ファイルは、モデルのパフォーマンスの検証に利用できます。

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