«Сброс соединения узлом на адаптированном стандартном обучении обнаружению объектов ML-Engine

Моя цель — протестировать собственное обучение обнаружению объектов с помощью Google ML-Engine на основе примера обучения домашних животных из API обнаружения объектов.

После нескольких успешных циклов обучения (может быть, до первой контрольной точки, так как никакой контрольной точки не было создано)...

15:46:56,784 глобальный шаг 2257: потеря = 0,7767 (1,70 с/шаг)

15:46:56,821 глобальный шаг 2258: потеря = 1,3547 (1,13 с/шаг)

... Я получил следующую ошибку при нескольких пробных занятиях по обнаружению объектов:

Координатору сообщено об ошибке: {"created":"@1502286418.246034567","description":"Ошибка ОС","errno":104,"file":"external/grpc/src/core/lib/iomgr/tcp_posix. c","file_line":229,"grpc_status":14,"os_error":"Соединение сброшено партнером","syscall":"recvmsg"}

Я получил его на worker-replica-0,3 и 4. После этого задание не выполняется:

Команда '['python', '-m', u'object_detection.train', u'--train_dir=gs://cartrainingbucket/train', u'--pipeline_config_path=gs://cartrainingbucket/data/faster_rcnn_resnet101. config', '--job-dir', u'gs://cartrainingbucket/train']' вернул ненулевой статус выхода -9

Я использую адаптацию файла fast_rcnn_resnet101.config со следующими изменениями:

train_input_reader: {
  tf_record_input_reader {
    input_path: "gs://cartrainingbucket/data/vehicle_train.record"
  }
  label_map_path: "gs://cartrainingbucket/data/vehicle_label_map.pbtxt"
}

eval_config: {
  num_examples: 2000
}

eval_input_reader: {
  tf_record_input_reader {
    input_path: "gs://cartrainingbucket/data/vehicle_val.record"
  }
  label_map_path: "gs://cartrainingbucket/data/vehicle_label_map.pbtxt"
  shuffle: false
  num_readers: 1
}

Мое ведро выглядит так:

cartrainingbucket (Regional US-CENTRAL1)
--data/
  --faster_rcnn_resnet101.config
  --vehicle_label_map.pbtxt
  --vehicle_train.record
  --vehicle_val.record
--train/ 
  --checkpoint
  --events.out.tfevents.1502259105.master-556a4f538e-0-tmt52
  --events.out.tfevents.1502264231.master-d3b4c71824-0-2733w
  --events.out.tfevents.1502267118.master-7f8d859ac5-0-r5h8s
  --events.out.tfevents.1502282824.master-acb4b4f78d-0-9d1mw
  --events.out.tfevents.1502285815.master-1ef3af1094-0-lh9dx
  --graph.pbtxt
  --model.ckpt-0.data-00000-of-00001
  --model.ckpt-0.index
  --model.ckpt-0.meta
  --packages/

Я запускаю задание, используя следующую команду (используя Windows cmd [^ должно равняться]:

gcloud ml-engine jobs submit training stefan_object_detection_09_08_2017i ^
--job-dir=gs://cartrainingbucket/train ^
--packages dist/object_detection-0.1.tar.gz,slim/dist/slim-0.1.tar.gz ^
--module-name object_detection.train ^
--region us-central1 ^
--config object_detection/samples/cloud/cloud.yml ^
-- ^
--train_dir=gs://cartrainingbucket/train ^
--pipeline_config_path=gs://cartrainingbucket/data/faster_rcnn_resnet101.config

cloud.yml используется по умолчанию:

trainingInput:
  runtimeVersion: "1.0" # i also tried 1.2, in this case the failure appeared earlier in training
  scaleTier: CUSTOM
  masterType: standard_gpu
  workerCount: 5
  workerType: standard_gpu
  parameterServerCount: 3
  parameterServerType: standard

Я использую на данный момент последнюю версию основной ветки Tensorflow Model (commit 36203f09dc257569be2fef3a950ddb2ac25dddeb). Моя локально установленная версия TF — 1.2, и я использую python 3.5.1.

Мои записи обучения и проверки работают локально для обучения.

Мне, как новичку, трудно увидеть источник проблемы. Буду рад любому совету.


person Horst Lemke    schedule 09.08.2017    source источник
comment
Скорее всего, ваш сервер параметров вышел из строя. Существуют более надежные методы, но нам потребуется проверить ваш код. Это доступно? Насколько он похож на образец для домашних животных? Также может быть полезно, если вы предоставите нам дамп ваших журналов.   -  person rhaertel80    schedule 10.08.2017
comment
Мы тренируемся на аэрофотоснимках, которые обрезаются до фрагментов размером около 1000x1000 пикселей. На некоторых изображениях около 50 объектов. Мы отключили обучение с контрольной точки.   -  person Horst Lemke    schedule 10.08.2017


Ответы (2)


Обновление: задание не выполнено из-за нехватки памяти. Вместо этого попробуйте использовать более крупную машину.

В дополнение к ответу rhaertel80 будет также полезно, если вы поделитесь с нами номером проекта и идентификатором задания через [email protected].

person Guoqing Xu    schedule 10.08.2017

Одна из возможностей заключается в том, что процессы TF используют слишком много ресурсов (обычно памяти) и уничтожаются операционной системой. Это могло бы объяснить сброс соединения пиром.

Так что можно попробовать использовать уровень/машины с большим количеством ресурсов.

person Jeremy Lewi    schedule 10.08.2017