问题标签 [gcp-ai-platform-training]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-platform - 个人私有应用程序的 OAuth2 同意设置
我正在尝试从 android 应用程序向 google cloud ai 平台发送预测请求。为了做到这一点,我似乎需要 OAuth2 验证。我不想使用“外部”选项,因为它不是外部应用程序,只会由您真正使用,但如果没有 G Suite 帐户,我无法使用“内部”应用程序。
python - 在 GCP 上具有自定义预测例程的 TensorFlow 模型
好吧,我正在使用 AI Platform 在 GCP 上部署基于 LSTM 的 tensorflow 模型。我已经在本地机器上训练和测试了模型。模型如下:
该模型旨在根据之前的 16 个值一次预测一个值。但在实践中,我确实需要 16 个值作为预测。我通过在原始值的末尾附加预测值,然后再次执行预测,直到我有 16 个值如下:
另外,我还在本地对数据进行了规范化,并在训练和预测时提供了平均值和标准值。我已将它们导出到一个 json 文件,并将其与我的模型 (.pb) 文件一起上传到 GCP
所以一切都在本地工作。但是我无法在 GCP 上执行此操作,因为我不确定如何使用自己的参数进行非规范化并进行类似的递归预测。我正在尝试使用自定义预测例程来完成该任务,但是一旦将模型部署在那里作为预测,即使是简单的预测也不起作用。因为我已经按照此处的指导完美地格式化了我的输入:
但它在预测时会引发以下错误:
所以这似乎是一个形状问题,我可能不得不增加尺寸,但添加另一对括号只会使事情变得更糟,并出现以下错误:
更新 1:现在可以通过只给它 3 个括号来预测单个值。那行得通。但仍在与递归预测和非规范化作斗争。
tensorflow - 如何让 Google Cloud AI Platform 在训练期间检测 `tf.summary.scalar` 调用?
(注意:我也在这里问过这个问题)
问题
我一直在尝试让 Google Cloud 的 AI 平台显示在 AI 平台上训练的 Keras 模型的准确性。我配置了超参数调整,hptuning_config.yaml
它可以工作。但是我无法让 AI 平台tf.summary.scalar
在训练期间接听电话。
文档
我一直在关注以下文档页面:
1.超参数调优概述
2.使用超参数调优
根据[1]:
AI Platform Training 如何获取您的指标 您可能会注意到,本文档中没有说明将您的超参数指标传递给 AI Platform Training 培训服务。这是因为该服务会监控您的训练应用程序生成的 TensorFlow 摘要事件并检索指标。”
根据[2],生成此类 Tensorflow 汇总事件的一种方法是创建回调类,如下所示:
我的代码
所以在我的代码中,我包括:
我什至试过
它成功地将“val_accuracy”指标保存到 Google 存储中(我也可以通过 TensorBoard 看到这一点)。但这并没有被 AI 平台采纳,尽管在[1]中提出了声明。
部分解决方案:
使用Cloud ML Hypertune包,我创建了以下类:
哪个有效!但我不知道如何,因为它似乎所做的只是写入 AI 平台工作人员上的文件/tmp/hypertune/*
。Google Cloud 文档中没有任何内容可以解释 AI 平台是如何发现这一点的……
为了tf.summary.scalar
显示事件,我是否遗漏了一些东西?
google-cloud-platform - 计算 ML 训练作业的成本 - GCP
我在 AI Platform - GCP 中运行了一项 ML 训练作业。该作业在亚太地区运行,自定义 VM 类型为 n1-highmem-8。该作业消耗的 ML 单位为 3.66。
因此,据此,我使用1中给出的以下公式计算了工作成本:
已消耗 ML 单位 * 0.54 美元(亚太地区)= 3.66 * 0.54 = 1.9764 美元
我想知道它是否计算正确。如果我错过了什么,请告诉我。我是否还需要考虑任何其他变量,例如 Compute Engine?
谢谢。
google-cloud-platform - 我们如何通过 gcloud 在 gcp 的 IAM 下添加用户?
我无法在身份访问管理下通过 cli 添加用户。所以请帮我解决这个问题。
python - 对部署在 GCP 上的模型进行 API 调用
我们已经在 GCP 上训练了一个 Nasnet 模型,并对其进行了部署,以便可以进行 API 调用。
该模型将图像作为输入(numpy 数组),并返回一个预测数组。但是,当我们尝试对发送 numpy 数组的模型进行 API 调用时,会发生错误(请求有效负载大小超出限制)。另一种普遍接受的格式是 base64,但是我们的模型仅配置为将 numpy 数组作为输入。
有没有办法解决这个问题,以便可以通过 API 调用进行预测?创建无服务器功能会有所帮助吗?谢谢
编辑:这是我用来向 GCP 模型发出请求的代码:
python - 如何在 AI 平台训练中使用 pandas-gbq 和 BigQuery Storage API?
我正在向 GCP AI 平台培训服务提交培训作业。我的训练数据集(同一个 GCP 项目中 BigQuery 表上的大约 40M 行)需要在训练作业开始时作为 pandas 数据框进行预处理,因此我尝试了GCP 文档提出的两种解决方案:
pandas_gbq API:
pd.read_gbq(query, project_id=PROJECT, dialect='standard', use_bqstorage_api=True)
谷歌云大查询 API:
client.query(query).to_dataframe(bqstorage_client=bqstorage_client)
这两种方法都适用于 AI 平台笔记本 VM,在几分钟内将整个 40M 行数据集下载为 pandas 数据帧。我正在努力在 AI 平台训练服务器(在 n1-highmem-16 机器上运行)上复制相同的程序。在 pandas-gbq API 的情况下,我得到一个权限被拒绝的错误:
google.api_core.exceptions.PermissionDenied: 403 request failed: the user does not have bigquery.readsessions.create' permission for 'projects/acn-c4-crmdataplatform-dev'
对于 google-cloud-bigquery API,没有错误。
以下是我按照GCP 文档的建议使用 trainer 包中的 setup.py 文件传递给 AI 平台训练作业的所需包的列表:
- 张量流==2.1.0
- numpy==1.18.2
- 熊猫==1.0.3
- google-api-core==1.17.0
- 谷歌云核心==1.3.0
- pyarrow==0.16.0
- 熊猫-gbq==0.13.1
- 谷歌云大查询存储==0.8.0
- 谷歌云大查询==1.24.0
python-3.x - AssertionError: `assert not _is_device_list_single_worker(devices)` 在使用 TF 2.1 的镜像策略在 AI 平台上训练估计器时
我正在 gcp ai 平台上为 tensorflow 估计器运行一个训练作业,该估计器具有镜像分布策略--python-version 3.7
和--runtime-version 2.1
.
我在下面提供了必要的代码片段:
配置:config.yaml
使用:
该代码正在使用 tensorflow 1.14 和 Python 3.5 的 AI 平台上运行,并且在RunConfig()
策略中提供为train_distribute=tf.contrib.distribute.MirroredStrategy()
. 但在 TF2 升级后它被更改为train_distribute=tf.distribute.MirroredStrategy()
. 在此更改后,错误是:
错误:
tensorflow - 在 ai 平台(Python 3.7、TF 2.1)上完成作业后未打印超参数指标标签
以前,当我们在运行时版本 1.15 和 Tensorflow 1.15 中使用相同的代码时,这些作业被执行并提高了准确性,因为它被传递了一个超度量标签以创建 AI 平台作业。
模型正在执行,损失和准确率打印在日志中,但超参数调整作业仍然失败。
下面提到了为参数超调而传递的配置文件
当我尝试使用相同的代码启动作业时,超调作业在 tensorflow 2.1 版和 python 3.7 版中失败
没有错误日志,所以我没有粘贴(在 StackDriver 上的日志中显示作业已成功完成)。
我在日志中看到模型正在接受训练(纪元正在运行,日志中的损失和准确度值),但是在经历了所有纪元之后,所有 HyperTune 试验都显示状态“失败”并且指标标签没有打印在控制台上. 超参数调整作业也不会发生评估步骤。
python - gcloud ai-platform training:是否可以使用私有存储库作为依赖项
在为 Google 的 AI 平台开发训练包时,我想使用来自私有 github 存储库的自定义依赖setup.py
项(每个都有一个. 使用命令指定这些依赖项的选项有哪些gcloud ai-platform jobs submit training
?
我在文档中找到的唯一方法(添加自定义依赖项)是首先为依赖项创建 sdist 和/或 wheel 二进制包(例如dep1.tar.gz
和/或dep2.whl
),然后使用:
据我了解,只能使用该--packages
选项从本地文件夹或 gcp 存储桶中使用 sdist/wheel 格式的包。
但是,这使得在可编辑/开发模式下本地处理这些依赖项变得很困难,因为它们需要在每次更改后构建(例如),以便为下一次训练运行python setup.py bdist_wheel
获取更新的文件。.whl
有没有办法直接指定私有 git repos 的 url(包括私有 repo 所需的凭据)或指定本地源目录?
或者如果我仍然在可编辑/开发模式下使用我的依赖项工作,最好使用自定义容器或在虚拟机中进行训练?