【问题标题】:Unable to get the result from Google machine learning Cloud REST API无法从 Google 机器学习 Cloud REST API 获取结果
【发布时间】:2018-01-10 08:39:17
【问题描述】:

我正在尝试使用 Google Cloud Machine Learning REST-API ml.jobs.project.create 运行作业

我提交的最新作业的作业 ID 为“drivermonitoring20180109335”。作业完成后,会显示消息“作业已成功完成”,但我在指定位置看不到任何所需的输出文件。输出日志可见fig1

另外,我想在您运行此作业 ID 时将我的一些观察结果展示在您面前:

i) 与我之前执行的任何其他作业相比,运行该作业所花费的时间要少得多。

ii) 在之前运行作业时,之前的每个作业都是通过两个不同的任务执行的,即 a)ma​​ster-replica-0 和 b)服务 strong>(参考图 2) 但是这个job没有master-replica-0任务(参考图3)我试图谷歌这个问题,但无法找到任何解决方案与问题相关。

所以我可以推断我试图运行的任务正在被安排,但我试图运行的 python 脚本从未被安排执行。

如果您需要更多屏幕截图或想要查看项目结构以帮助解决问题,请告诉我。

提前致谢。

编辑 1:在调用 API 时添加 JSON

POST https://ml.googleapis.com/v1/projects/drivermonitoringsystem/jobs?key={YOUR_API_KEY}



{
 "trainingInput": {
  "pythonModule": "trainer.retrain",
  "args": [
   "--bottleneck_dir=ModelTraining/tf_files/bottlenecks \
    --model_dir=ModelTraining/tf_files/models/ \
    --architecture=mobilenet_0.50_224 \
    --output_graph=gs://<BUCKET_NAME>/tf_files/retrained_graph.pb \
    --output_labels=gs://<BUCKET_NAME>/tf_files/retrained_labels.txt \
    --image_dir=gs://<BUCKET_NAME>/dataset224x224/"
  ],
  "region": "us-central1",
  "packageUris": [
   "gs://<BUCKET_NAME>/ModelTraining4.tar.gz"
  ],
  "jobDir": "gs://<BUCKET_NAME>/tf_files/",
  "runtimeVersion": "1.4"
 },
 "jobId": "job_id201801101535"
}

【问题讨论】:

    标签: machine-learning google-cloud-platform google-cloud-ml


    【解决方案1】:

    我刚刚使用gcloud commandREST API 为自己运行了一些示例作业,并且在这两种情况下一切正常。在您的情况下,该作业似乎从未执行过,因为没有为处理作业本身创建集群(这就是缺少 master-replica-0 的原因)。

    您之前运行过的作业也是使用 REST API 启动的,还是使用 gcloud 或客户端库启动的?

    在这里我分享一个示例 JSON,我在通过您共享的 API Explorer 链接对ml.projects.jobs.create 进行 API 调用时使用,我建议您尝试根据您的要求调整它并检查是否有任何缺失的字段:

    POST https://ml.googleapis.com/v1/projects/<YOUR_PROJECT>/jobs?key={YOUR_API_KEY}
    
    {
     "jobId": "<JOB_ID>",
     "trainingInput": {
      "jobDir": "gs://<LOCATION_TO_STORE_OUTPUTS>",
      "runtimeVersion": "1.4",
      "region": "<REGION>",
      "packageUris": [
       "gs://<PATH_TO_YOUR_TRAINER>/trainer-0.0.0.tar.gz"
      ],
      "pythonModule": "<PYTHON_MODULE_TO_RUN>",
      "args": [
       "--train-files",
       "gs://<PATH_TO_YOUR_TRAINING_DATA>/data.csv",
       "--eval-files",
       "gs://<PATH_TO_YOUR_TEST_DATA>/test.csv",
       "--train-steps",
       "100",
       "--eval-steps",
       "10",
       "--verbosity",
       "DEBUG"
      ]
     }
    }
    

    如果您尝试运行预测作业而不是训练作业(如本例所示),请将 TrainingInput 更改为 PredictionInput(以及相应的子字段)。

    【讨论】:

    • 我之前运行过的作业是使用 REST API 启动的。
    • 而且他们的配置与失败的配置完全相同?
    • 是的。它具有相同的配置。但是我没有在我的 API 调用中使用字段 runtimeVersion。希望它没有改变。我已将 JSON 文件作为 EDIT 1 添加到问题
    • 感谢您编辑您的问题。我想 runtimeVersion 应该不是这里的问题,因为它是一个可选字段,如果缺少它,它将选择最新的稳定版本。我了解,由于某种原因,该精确作业未能正确部署。也许你可以尝试重新提交它。您能否确认您已经运行了完全相同的 API 调用(只是更改了 jobID)并且它在其他时间也有效?
    • 我建议您针对不同的主题发布不同的问题,因为这样可能会获得更多关注,并且比在此处添加 cmets 更容易处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 2021-12-23
    相关资源
    最近更新 更多