Ухудшение результатов на gcloud против местного обучения - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь понять, почему мои локальные результаты лучше, чем результаты gcloud.

В локальном режиме я выполняю задание, подобное этому:

gcloud ml-engine local train --module-name trainer.task --package-path trainer -- --vocabulary-file trainer/data/vocab.txt --class-files $CLASS_FILES --job-dir trainer/lr0001 --num-epochs 5000 --learning-rate 0.0001 --train-batch-size 4 --eval-batch-size 64 --export-format CSV

И для gcloud я запускаю

gcloud ml-engine jobs submit training $JOBNAME --job-dir gs://.../lr0001 --module-name trainer.task --package-path trainer --region us-west1 --runtime-version 1.10 -- --vocabulary-file gs://.../vocab.txt --class-files $GS_CLASS_FILES --num-epochs 5000 --learning-rate 0.0001 --train-batch-size 4 --eval-batch-size 64 --export-format CSV

Я исправил начальное число, запустил его несколько раз, проверил python 2 против python 3, но результаты gcloud все еще хуже, чем мой локальный запуск.

Последний битЯ обнаружил, что локальные журналы выглядят так:

INFO:tensorflow:loss = 0.63639945, step = 401 (0.170 sec)
INFO:tensorflow:global_step/sec: 485.821
INFO:tensorflow:loss = 0.61793035, step = 501 (0.206 sec)
INFO:tensorflow:global_step/sec: 490.795
INFO:tensorflow:loss = 0.5869169, step = 601 (0.204 sec)
INFO:tensorflow:global_step/sec: 619.825
INFO:tensorflow:loss = 0.5738391, step = 701 (0.161 sec)
INFO:tensorflow:global_step/sec: 605.698
INFO:tensorflow:loss = 0.51589084, step = 801 (0.165 sec)

, тогда как журналы gcloud выглядят так, будто они удваиваются или что-то в этом роде

I  master-replica-0 loss = 0.40115586, step = 2202 (0.367 sec) master-replica-0 
I  master-replica-0 global_step/sec: 555.434 master-replica-0 
I  master-replica-0 global_step/sec: 498.601 master-replica-0 
I  master-replica-0 loss = 0.4367655, step = 2402 (0.470 sec) master-replica-0 
I  master-replica-0 global_step/sec: 366.906 master-replica-0 
I  master-replica-0 global_step/sec: 408.556 master-replica-0 
I  master-replica-0 loss = 0.41198668, step = 2602 (0.492 sec) master-replica-0 
I  master-replica-0 global_step/sec: 388.73 master-replica-0 
I  master-replica-0 global_step/sec: 380.982 master-replica-0 
I  master-replica-0 loss = 0.35386887, step = 2802 (0.522 sec) master-replica-0 
I  master-replica-0 global_step/sec: 401.002 master-replica-0 
I  master-replica-0 global_step/sec: 465.647 master-replica-0 
I  master-replica-0 loss = 0.4420835, step = 3002 (0.417 sec) master-replica-0 

Любые указатели приветствуются!

Единственное, что я обнаружил в интернете, так это эти вопросы без ответа:

Результаты обучения модели Keras, отличной от Google Cloud

Отличает выходные данные от прогнозов с использованием Tensorflow от тех же данных?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

После некоторого копания, я полагаю, что это связано с некоторым ошибочным взаимодействием между Keras и API Estimator в тензорном потоке 1.10 (текущая версия gcloud), но не в> = 1.11 (что я использовал локально).

Я отправил сообщение об ошибке здесь: https://github.com/tensorflow/tensorflow/issues/24299

0 голосов
/ 10 декабря 2018

Основываясь на журналах, я предполагаю, что gcloud on cloud собирает контрольную точку и возобновляет обучение (см. Количество шагов).Можете ли вы выполнить следующий тест: Запустите локальный с нуля и убедитесь, что папок выходной модели не существует, а затем повторите ту же настройку в облаке и сравните.

...