我的目标是使用基于Object Detection API的宠物训练示例,使用Google ML-Engine测试自定义对象检测培训 .
经过一些成功的训练周期后(可能直到第一个检查点,因为没有创建检查点)...
15:46:56.784全球步骤2257:损失= 0.7767(1.70秒/步)15:46:56.821全球步骤2258:损失= 1.3547(1.13秒/步)
...我在几个物体检测培训工作试验中收到以下错误:
向协调员报告错误:,{“created”:“@ 1502286418.246034567”,“description”:“OS Error”,“errno”:104,“file”:“external / grpc / src / core / lib / iomgr / tcp_posix .c“,”file_line“:229,”grpc_status“:14,”os_error“:”通过对等方重置连接“,”系统调用“:”recvmsg“}
我在worker-replica-0,3和4上收到它 . 然后作业失败:
命令'['python',' - m',u'object_detection.train',你' - train_dir = gs:// cartrainingbucket / train',u' - pipeline_config_path = gs:// cartrainingbucket / data / faster_rcnn_resnet101 .config',' - job-dir',u'gs:// cartrainingbucket / train']'返回非零退出状态-9
我正在使用faster_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 .
我的培训和验证记录都在本地进行培训 .
对我来说,作为新手,很难看到问题的根源 . 我很乐意接受任何建议 .
2 回答
一种可能性是TF进程正在使用大量资源(通常是内存)并被操作系统杀死 . 这可以解释同伴重置的连接 .
因此,要尝试的一件事是使用具有更多资源的层/机器 .
更新:由于内存不足导致作业失败 . 请尝试使用更大的机器 .
除了rhaertel80的回答之外,如果您可以通过cloudml-feedback@google.com与我们分享项目编号和工作ID,也会有所帮助 .