标签: google-cloud-ml

使用 Google Cloud Machine Learning 服务通过本地重新训练的 Inception 模型进行预测

我使用来自 Google Code Lab TensorFlow for Poets的retrain.py文件在本地重新训练了 Inception 模型,并希望使用 Google Cloud 机器学习服务进行预测。

具体来说,我想修改 retrain.py 文件,所以我的 TensorFlow 应用程序准备好了

gcloud beta ml predict --instances=INSTANCES --model=MODEL

(即,仅预测;不需要 Google Cloud ML 培训 ala gloud beta ml 作业提交培训)。

我从概念上理解 retrain.py 文件必须按照准备模型中的描述进行修改。

但是没有完整的答案显示retrain.py文件中修改后的所有代码行。Google Code Lab TensorFlow for Poets 和 Pete Warden 关于重新训练 Inception 的截屏视频的流行使人们期望这是 TensorFlow 社区中非常常见的图像分类示例;这意味着答案将使社区中的许多人受益。

在按照准备模型中的描述进行修改后,有人会回答他们的 retrain.py 文件版本吗?

注 1:我已经研究了我的问题以确认它没有得到回答......

… Davide Biraghi 提出并由 JoshGC 回答的问题“Q: How predict an image in google machine learning”没有显示对 retrain.py 文件的任何修改,该文件在 Google Code Lab TensorFlow for …

tensorflow google-cloud-ml

5
推荐指数
1
解决办法
512
查看次数

将图形 (pb) 转换为 SavedModel 以用于 gcloud ml-engine predict

根据Google 的 Derek Chow 最近在 Google Cloud Big Data And Machine Learning Blog 上的帖子,我使用 Cloud Machine Learning Engine 训练了一个对象检测器,现在想使用 Cloud Machine Learning Engine 进行预测。

说明包括将 Tensorflow 图导出为 output_inference_graph.pb 的代码,但不包括如何将 protobuf 格式 (pb) 转换为 gcloud ml-engine predict 所需的 SavedModel 格式。

我查看了Google 的 @rhaertel80关于如何转换“Tensorflow For Poets”图像分类模型的答案,以及 Google 的 @MarkMcDonald 提供的关于如何转换“Tensorflow For Poets 2”图像分类模型的答案,但似乎都不适用于博客文章中描述的对象检测器图 (pb)。

请如何转换该对象检测器图 (pb) 以便可以使用它或 gcloud ml-engine 预测?

object-detection tensorflow google-cloud-ml google-cloud-ml-engine

5
推荐指数
1
解决办法
1326
查看次数

gcloud ml-engine 在大文件上返回错误

我有一个接受过大输入的训练模型。我通常将其作为形状 (1,473,473,3) 的 numpy 数组来执行。当我把它放到 JSON 中时,我最终得到了一个大约 9.2MB 的文件。即使我将其转换为 JSON 文件的 base64 编码,输入仍然相当大。

ml-engine predict 在发送 JSON 文件时拒绝我的请求,并出现以下错误:

(gcloud.ml-engine.predict) HTTP request failed. Response: {
"error": {
    "code": 400,
    "message": "Request payload size exceeds the limit: 1572864 bytes.",
    "status": "INVALID_ARGUMENT"
  }
}
Run Code Online (Sandbox Code Playgroud)

看起来我无法向 ML-engine 发送大小超过 1.5MB 的任何内容。这确定是一回事吗?其他人如何绕过对大数据进行在线预测?我必须启动计算引擎还是会遇到同样的问题?

编辑:

我从 Keras 模型开始并尝试导出到 tensorflow 服务。我将我的 Keras 模型加载到一个名为“model”的变量中,并定义了一个目录“export_path”。我像这样构建 tensorflow 服务模型:

signature = predict_signature_def(inputs={'input': model.input},
                                outputs={'output': model.output})
builder = saved_model_builder.SavedModelBuilder(export_path)
builder.add_meta_graph_and_variables(
    sess=sess,
    tags=[tag_constants.SERVING],
    signature_def_map={
        signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature
    }
)
builder.save()
Run Code Online (Sandbox Code Playgroud)

输入将如何查找此 signature_def?JSON 会像 {'input': ' https://storage.googleapis.com/projectid/bucket/filename …

python json numpy predict google-cloud-ml

5
推荐指数
1
解决办法
1932
查看次数

直接从 Python 提交 Google Cloud ML Engine 作业

我有一个 Keras .h5 模型,我一直在本地训练它,但是现在希望通过 Google Cloud ML-Engine 自动化整个过程。

我已将所有 GCloud Storage 存储桶设置为可从应用程序访问,并且我已阅读有关配置作业以提交Keras模型以在 GCloud ML-Engine 中进行训练的信息。但是,所有这些教程(包括 google cloud ml-engine 上的文档)都声明要运行作业最好从命令行运行gcloud ml-engine jobs submit training

不过,我知道 Google Cloud 有一个 Python 客户端库,但它的文档似乎有点不透明。

有人知道我是否可以完全从 python 文件本身提交模型的训练(通过直接 API 调用或通过 Google 客户端库)?我问是因为我希望把它变成一个完全自动化的、托管的 Flask 网络应用程序,用于模型训练,所以它需要尽可能地放手。

python google-cloud-platform keras google-cloud-ml google-python-api

5
推荐指数
1
解决办法
1090
查看次数

将google-cloud-ml github Reddit示例从回归转换为分类并添加键?

我一直在尝试将cloud-ml github示例仓库中的reddit_tft示例调整为我的需要。

我已经能够按照本教程自述文件的要求运行它。

但是,我要使用它的是一个二进制分类问题,并在批处理预测中输出键。

因此,我在此处复制了教程代码并在几个地方进行了更改,以便能够deep_classifier使用a DNNClasifier代替a的模型类型DNNRegressor

我将score变量更改为

if(score>0,1,0) as score

它的训练很好,可以部署到云ml,但是我不确定现在如何从我的预测中获取密钥。`

我已经更新了从BigQuery提取的sql,将其包含id as example_id 在此处

看来本教程中的代码具有某种占位符,example_id因此我正在尝试利用它。

一切似乎都有效,但是当我得到批量预测时,我得到的是像这样的json:

{"classes": ["0", "1"], "scores": [0.20427155494689941, 0.7957285046577454]} {"classes": ["0", "1"], "scores": [0.14911963045597076, 0.8508803248405457]} ...

因此example_id,似乎并没有像我需要的那样将其纳入服务功能。

我尝试遵循此处的方法该方法基于将普查示例改编为密钥。

我只是想不通如何完成这个Reddit示例以在预测中也输出键,因为它们在设计和功能上对我来说有点不同。

更新1

我的最新尝试是在这里尝试使用此处概述的方法。

但这给出了错误:

NotFoundError (see above for traceback): /tmp/tmp2jllvb/model.ckpt-1_temp_9530d2c5823d4462be53fa5415e429fd; No such file or directory
     [[Node: save/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, …
Run Code Online (Sandbox Code Playgroud)

tensorflow google-cloud-ml

5
推荐指数
1
解决办法
315
查看次数

不支持 ML Engine 运行时版本和 Python 版本

执行此命令时,我正在尝试按照本教程运行 Google clound ml-engine :

$ gcloud ml-engine jobs submit training `whoami`_object_detection_`date +%s` \ 
    --job-dir=gs://${YOUR_GCS_BUCKET}/train\
    --packages dist/object_detection-0.1.tar.gz,slim/dist/slim-0.1.tar.gz,/tmp/pycocotools/pycocotools-2.0.tar.gz\
    --module-name object_detection.model_tpu_main \
    --runtime-version 1.10\
    --scale-tier BASIC_TPU\
    --region us-central1\
    --
    --model_dir=gs://${YOUR_GCS_BUCKET}/train
    --tpu_zone us-central1
    --pipeline_config_path=gs://${YOUR_GCS_BUCKET}/data/pipeline.config 
Run Code Online (Sandbox Code Playgroud)

回答我的命令:

  ERROR: (gcloud.ml-engine.jobs.submit.training) INVALID_ARGUMENT: Field: runtime_version Error: The specified runtime version '1.10' with the Python version '' is not supported for TPU training.  Please specify a different runtime version. See https://cloud.google.com/ml/docs/concepts/runtime-version-list for a list of supported versions
- '@type': type.googleapis.com/google.rpc.BadRequest
  fieldViolations:
  - description: The specified runtime version …
Run Code Online (Sandbox Code Playgroud)

python bash tensorflow google-cloud-ml

5
推荐指数
1
解决办法
1304
查看次数

如何仅在评估模式下运行 TF 对象检测 API model_main.py

我想在使用 Google Cloud 的新测试集上评估自定义训练的 Tensorflow 对象检测模型。

我从以下位置获得了初始检查点:https : //github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

我知道 Tensorflow 对象检测 API 允许我使用以下方法同时运行训练和评估:

https://github.com/tensorflow/models/blob/master/research/object_detection/model_main.py

要开始这样的工作,我提交以下 ml-engine 工作:

gcloud ml-engine jobs submit training [JOBNAME] 
--runtime-version 1.9 
--job-dir=gs://path_to_bucket/model-dir 
--packages dist/object_detection- 
    0.1.tar.gz,slim/dist/slim-0.1.tar.gz,pycocotools-2.0.tar.gz 
--module-name object_detection.model_main 
--region us-central1 
--config object_detection/samples/cloud/cloud.yml 
-- 
--model_dir=gs://path_to_bucket/model_dir 
--pipeline_config_path=gs://path_to_bucket/data/model.config
Run Code Online (Sandbox Code Playgroud)

但是,在成功转移训练模型后,我想使用计算性能指标,例如 COCO mAP( http://cocodataset.org/#detection-eval ) 或 PASCAL mAP ( http://host.robots. ox.ac.uk/pascal/VOC/pubs/everingham10.pdf)在一个以前没有使用过的新测试数据集上(无论是在训练期间还是在评估期间)。

我已经看到,model_main.py 中有可能的标志:

flags.DEFINE_string(
    'checkpoint_dir', None, 'Path to directory holding a checkpoint. If '
    '`checkpoint_dir` is provided, this binary operates in eval-only 
     mode, '
    'writing resulting metrics to `model_dir`.') …
Run Code Online (Sandbox Code Playgroud)

python tensorflow google-cloud-ml object-detection-api

5
推荐指数
1
解决办法
5070
查看次数

谷歌云AI平台jupyter笔记本实例即使在重置并运行后也不会打开

我正在使用提供 jupyterlab 笔记本的 Google AI 平台。我设置了 2 个笔记本实例来运行R,其中现在仅打开一个笔记本。无论我执行多少次停止和重置,第一个笔记本都不会打开。在此图中可以看到笔记本概述,圈出的是差异(它是“已启动”): 仪表板的差异

我能想象到这种困难的唯一原因是我更改了笔记本电脑的机器类型,将 CPU 数量从 4 个减少到 2 个,将 RAM 从 15 个减少到 7.5 个。现在我无法打开它,并且环境应该说的地方是空白的R3.6。如果没有非备份工作,我不介意删除它并重新开始。

可以采取什么措施使笔记本电脑恢复运行?如果无法完成,如何下载或提取一些关键文件?

r google-cloud-platform google-cloud-ml gcp-ai-platform-notebook google-ai-platform

5
推荐指数
1
解决办法
6503
查看次数

Tensorflow - 解释 tf.estimator.ProfilerHook“_Send”操作

我有一个在 Google AI 平台上训练的深度 CNN/RNN。我使用tf.distribute.MirroredStrategy. 我最近将运行时版本从 1.13 升级到 1.15,我的训练速度比以前慢了 2 倍多。我读到tf.estimator.ProfilerHook可以用来识别性能瓶颈。因此,我收集了分析信息并将其呈现在chrome://tracing. 我懂了

分析截图

训练步骤在这些操作上花费整整 1 秒_Send。这是什么?我找不到有关该操作的任何文档,也找不到它为什么出现在我的图表中。这是什么意思?

tensorflow google-cloud-ml gcp-ai-platform-training

5
推荐指数
0
解决办法
141
查看次数

Vertex AI Workbench 笔记本无响应

访问 GCP Vertex AI Workbench 托管笔记本时遇到各种问题。确实可以使用一些有关恢复和避免进一步失败的建议。

最初的行为(两天前)是

  • 在 JupyterLab 实例中工作一个多小时(在实例中创建一些笔记本)后,某种连接丢失。
    • JupyterLab 界面内部:单元无法运行,笔记本无法保存到磁盘或导出,并且重新启动内核不起作用。
    • 屏幕上弹出错误消息:502,消息中提到“错误网关”或类似内容
    • 返回用于管理我的 Workbench 实例的控制台屏幕,我能够使用 Reset 命令将实例恢复到工作状态。

**注意:** 该实例设置为在空闲时间一小时后暂停。这并不明显相关;失败发生在创建后一个多小时,但在事情变得糟糕之前肯定没有一个小时的空闲时间。

今天,我回来后再次能够在同一个实例中工作一个多小时,但随后出现相同的症状。无法执行代码,无法保存笔记本。

然而,现在情况更糟了,因为点击“重置”会导致光标无休止地旋转。该实例将无法完成重置并且无法启动。当我将鼠标悬停在旋转光标上应位于“打开 JUPYTERLAB”按钮的位置时,会出现一个悬停框,显示“正在设置 JupyterLab 代理”。

实例状态的悬停文本显示:“正在配置”。

更多:我还尝试从工作台控制台屏幕创建一个新的笔记本实例,它陷入相同的状态 - 只是旋转,从未达到运行状态。如果我尝试重置它,屏幕底部会出现一个小弹出窗口,如下所示: 在此输入图像描述

随后,重置按钮引发的悬停文本为: 在此输入图像描述

至少,我希望至少重新获得一次对初始实例的访问权限,以恢复笔记本中的一些代码(并在不那么不稳定的云服务中运行它)。最好的情况是,您可以帮助我管理此问题,以便随着时间的推移,此 GCP 服务对我来说实际上是可行的。

jupyter-notebook google-cloud-ml gcp-ai-platform-notebook google-cloud-vertex-ai

5
推荐指数
0
解决办法
2916
查看次数