0

私は次のような構成(config.yaml)を選択したとき、私はメモリから抜け出すの問題が生じています外の学習https://github.com/GoogleCloudPlatform/cloudml-samples/blob/master/criteo_tft/config-large.yamlGoogleクラウドマシンメモリ

このリンクでは、1TBのデータを鍛えることができたとのことです。私は試して感動しました!!!

私のデータセットはカテゴリになっているので、1ホット・エンコーディング(サイズが520000 x 4000の2次元numpy配列)の後にかなり大きな行列を作成します。私は32GBのメモリを持つローカルマシンで自分のデータセットを訓練することができますが、私は雲の中で同じことをすることはできません!心配しないでください

ERROR 2017-12-18 12:57:37 +1100 worker-replica-1  Using TensorFlow 
backend. 

ERROR 2017-12-18 12:57:37 +1100 worker-replica-4  Using TensorFlow      
backend. 

INFO 2017-12-18 12:57:37 +1100 worker-replica-0  Running command: 
python -m trainer.task --train-file gs://my_bucket/my_training_file.csv -- 
job-dir gs://my_bucket/my_bucket_20171218_125645 

ERROR 2017-12-18 12:57:38 +1100 worker-replica-2  Using TensorFlow 
backend. 

ERROR 2017-12-18 12:57:40 +1100 worker-replica-0  Using TensorFlow 
backend. 

ERROR 2017-12-18 12:57:53 +1100 worker-replica-3  Command 
'['python', '-m', u'trainer.task', u'--train-file', 
u'gs://my_bucket/my_training_file.csv', '--job-dir', 
u'gs://my_bucket/my_bucket_20171218_125645']' returned non-zero exit status -9 

INFO 2017-12-18 12:57:53 +1100 worker-replica-3  Module 
completed; cleaning up. 

INFO 2017-12-18 12:57:53 +1100 worker-replica-3  Clean up 
finished. 

ERROR 2017-12-18 12:57:56 +1100 worker-replica-4  Command 
'['python', '-m', u'trainer.task', u'--train-file', 
u'gs://my_bucket/my_training_file.csv', '--job-dir', 
u'gs://my_bucket/my_bucket_20171218_125645']' returned non-zero exit status -9 

INFO 2017-12-18 12:57:56 +1100 worker-replica-4  Module 
completed; cleaning up. 

INFO 2017-12-18 12:57:56 +1100 worker-replica-4  Clean up 
finished. 

ERROR 2017-12-18 12:57:58 +1100 worker-replica-2  Command 
'['python', '-m', u'trainer.task', u'--train-file', 
u'gs://my_bucket/my_training_file.csv', '--job-dir', 
u'gs://my_bucket/my_bucket_20171218_125645']' returned non-zero exit status -9 

INFO 2017-12-18 12:57:58 +1100 worker-replica-2  Module 
completed; cleaning up. 

INFO 2017-12-18 12:57:58 +1100 worker-replica-2  Clean up 
finished. 

ERROR 2017-12-18 12:57:59 +1100 worker-replica-1  Command 
'['python', '-m', u'trainer.task', u'--train-file', 
u'gs://my_bucket/my_training_file.csv', '--job-dir', 
u'gs://my_bucket/my_bucket_20171218_125645']' returned non-zero exit status -9 

INFO 2017-12-18 12:57:59 +1100 worker-replica-1  Module 
completed; cleaning up. 

INFO 2017-12-18 12:57:59 +1100 worker-replica-1  Clean up finished. 

ERROR 2017-12-18 12:58:01 +1100 worker-replica-0  Command 
'['python', '-m', u'trainer.task', u'--train-file', 
u'gs://my_bucket/my_training_file.csv', '--job-dir', 
u'gs://my_bucket/my_bucket_20171218_125645']' returned non-zero exit status -9 

INFO 2017-12-18 12:58:01 +1100 worker-replica-0  Module 
completed; cleaning up. 

INFO 2017-12-18 12:58:01 +1100 worker-replica-0  Clean up finished. 

ERROR 2017-12-18 12:58:43 +1100 service  The replica worker 0 ran 
out-of-memory and exited with a non-zero status of 247. The replica worker 1 
ran out-of-memory and exited with a non-zero status of 247. The replica 
worker 2 ran out-of-memory and exited with a non-zero status of 247. The 
replica worker 3 ran out-of-memory and exited with a non-zero status of 247. 
The replica worker 4 ran out-of-memory and exited with a non-zero status of 
247. To find out more about why your job exited please check the logs: 
https://console.cloud.google.com/logs/viewer?project=a_project_id........(link to to my cloud log) 

INFO 2017-12-18 12:58:44 +1100 ps-replica-0  Signal 15 (SIGTERM) 
was caught. Terminated by service. This is normal behavior. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-1  Signal 15 (SIGTERM) 
was caught. Terminated by service. This is normal behavior. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-0  Module completed; 
cleaning up. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-0  Clean up finished. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-1  Module completed; 
cleaning up. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-1  Clean up finished. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-2  Signal 15 
(SIGTERM) was caught. Terminated by service. This is normal behavior. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-2  Module completed; 
cleaning up. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-2  Clean up finished. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-3  Signal 15 (SIGTERM) 
was caught. Terminated by service. This is normal behavior. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-5  Signal 15 (SIGTERM) 
was caught. Terminated by service. This is normal behavior. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-3  Module completed; 
cleaning up. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-3  Clean up finished. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-5  Module completed; 
cleaning up. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-5  Clean up finished. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-4  Signal 15 (SIGTERM) 
was caught. Terminated by service. This is normal behavior. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-4  Module completed; 
cleaning up. 

INFO 2017-12-18 12:58:44 +1100 ps-replica-4  Clean up finished. 

INFO 2017-12-18 12:59:28 +1100 service  Finished tearing down 
TensorFlow. 

INFO 2017-12-18 13:00:17 +1100 service  Job failed.## 

:ここ

は私のエラーある "TensorFlowバックエンドを使用します。"私はそれを持っているので、エラーは、他の小さなデータセットのための訓練の仕事は成功です。

メモリ不足(エラー247)の原因を説明し、そのような問題を避けるためにconfig.yamlファイルを作成してクラウドでデータをトレーニングするにはどうすればよいですか?

答えて

0

問題を修正しました。問題はテンソルフローバージョンで、特にクラウドでトレーニングジョブをどのように提出していたかが問題でした。あなたは上記のスクリプトでは、実行時バージョンを見れば、私が指定されているものの、TensorFlowバージョン1.0を選択することが私のトレーニングの仕事を強制される「1.0」である

export JOB_NAME="my_job_name_$(date +%Y%m%d_%H%M%S)" 
export BUCKET_NAME=my_bucket_name 
export REGION=us-central1 
gcloud ml-engine jobs submit training $JOB_NAME \ 
--job-dir gs://$BUCKET_NAME/$JOB_NAME \ 
--runtime-version 1.0 \ 
--module-name trainer.task \ 
--package-path ./trainer \ 
--region $REGION \ 
--config=trainer/config.yaml \ 
-- \ 
--train-file gs://$BUCKET_NAME/my_training_data.csv 

は私の訓練の仕事は次のように提出されました上記の設定は、1.3 [など1.4.0、1.4.1など]より後の安定tensorflowバージョンを選択します

'tensorflow >= 1.3' 

:として私のセットアップファイルでtensorflow。私の場合、1.4.1を選択しました。

だからあなたの実行時バージョンをそのまま1.4

... --runtime、バージョン1.4 \ ... や線の残りの部分が滞在して変化します。

注:あなたが大規模なデータセットで作業している場合、私は強くあなたの設定ファイル(config.yaml)で「large_model」を使用することをお勧めします、あなたは、単一のマシンに満足している場合、あなたが書くことができます。

trainingInput: 
    scaleTier: CUSTOM 
    masterType: large_model 
    runtimeVersion: "1.4" 

上記の設定では、 "masterType:large_model"を使用すると、大量のモデル(大量の隠れたレイヤーや非常に多数のノードがあるレイヤー)がある場合に、パラメータサーバーに適したメモリを持つマシンを選択できます。今では、2.5ミリオンの行と4200のエンコードされた列でカテゴリカルデータセットを訓練することができます。

関連する問題