大規模なトレーニング

以下のヒントは、大規模なデータセットやモデルに適用されます。

単一トレーニングと分散トレーニングについて

scikit-learn と XGBoostでは分散トレーニングがサポートされていません(スケール階層 STANDARD_1PREMIUM_1)。単一ワーカー インスタンスに対応するスケール階層の値のみ使用してください。

大規模なデータセット

大規模なデータセットを扱う場合、データセット全体をトレーニング ワーカー VM にダウンロードして pandas に読み込むというやり方では、スケールしなくなる可能性があります。このような場合は、TensorFlow の stream-read/file_io API を使用することを検討してください(この API は VM にプリインストールされています)。

import pandas as pd

from pandas.compat import StringIO
from tensorflow.python.lib.io import file_io

# Access iris data from Cloud Storage
iris_data_filesteam = file_io.FileIO(os.path.join(data_dir, iris_data_filename),
                                     mode='r')
iris_data = pd.read_csv(StringIO(iris_data_filesteam.read())).values
iris_target_filesteam = file_io.FileIO(os.path.join(data_dir,
                                                    iris_target_filename),
                                       mode='r')
iris_target = pd.read_csv(StringIO(iris_target_filesteam.read())).values
iris_target = iris_target.reshape((iris_target.size,))

# Your training program goes here
...
..
.

# Close all filestreams
iris_data_filesteam.close()
iris_target_filesteam.close()

大規模なモデル

大容量メモリのニーズに対応したトレーニング ワーカー VM をリクエストするには、scale-tierCUSTOM に設定し、構成ファイルに masterType を設定します。詳細については、スケール階層のドキュメントをご覧ください。

方法は次のとおりです。

  1. config.yaml をローカルに作成し、次の内容を含めます。

    trainingInput:
      masterType: large_model
    
  2. ジョブを送信します。

    CONFIG=path/to/config.yaml
    
    gcloud ml-engine jobs submit training $JOB_NAME \
      --job-dir $JOB_DIR \
      --package-path $TRAINER_PACKAGE_PATH \
      --module-name $MAIN_TRAINER_MODULE \
      --region us-central1 \
      --runtime-version=$RUNTIME_VERSION \
      --python-version=$PYTHON_VERSION \
      --scale-tier CUSTOM \
      --config $CONFIG
    

scale-tier には BASICCUSTOM のみがサポートされています。構成ファイルでは masterType のみがサポートされています(parameterTypeworkerType はサポートされていません)。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

scikit-learn と XGBoost の Cloud ML Engine