问题标签 [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.
python - 使用 AI Platform 超参数调优能力时如何强制参数依赖?
我有一个scikit-learn
模型,我可以GCP
使用AI Platform training
. 我还想使用AI Platform training
. 这是可能的,只需要传递带有参数及其范围的 YAML:
这里的问题是两个参数之间存在一些依赖关系:min_df<max_df
. 如果不是这种情况scikit-learn
,将按预期失败。
在 YAML 中似乎不可能表达这种依赖关系。
我可以调整失败的试验次数,但如果我不走运并且我的第一份工作,df_min>df_max
那么超参数调整的整个过程将停止。这似乎不是一个有效的选择。
链接文档
我可以在我的 python 代码中控制它并确保df_min<df_max
我应该返回到代码中进行超参数调整(我猜是使用贝叶斯优化),以便它了解这种参数选择是无效的?
只是返回 0.0 的精度就足够了吗?或者我应该返回None
还是NaN
?我没有找到关于这个主题的任何文档。
额外问题:当我使用 YAML 时,我只能传递字符串,而不能像 None 或 NULL link doc
在将值传递给模型之前,我需要直接在 python 代码中转换'None'
为。None
有没有更好的方法来处理这种情况?(我正在使用 gcloud cli)例如使用 GCP python 客户端库?
google-cloud-sql - 如何授予 AI Platform 训练作业访问同一项目中 Cloud SQL 资源的权限?
我有一张可以运行我的培训工作的图像。训练数据位于 Cloud SQL 数据库中。当我在本地机器上运行 cloud_sql_proxy 时,容器可以正常连接。
我mysql
只是用来测试连接,实际的训练命令在容器的其他地方。当我通过 AI Platform 尝试此操作时,我无法连接。
似乎无法从作业运行的任何地方访问主机。 如何授予 AI 平台对 Cloud Sql 的访问权限?
我已经考虑在训练容器中包含云 sql 代理,然后将服务帐户凭据作为用户 args 注入,但由于它们都在同一个项目中,我希望不需要这一步。这些希望是不是落空了?
google-cloud-platform - 无法使用自定义预测例程将经过训练的模型部署到 Google Cloud Ai-Platform:模型需要的内存超出了允许的范围
我正在尝试使用自定义预测例程将预训练的 pytorch模型部署到 AI Platform。按照此处描述的说明进行操作后,部署失败并出现以下错误:
模型文件夹的内容大小为83.89 MB,低于文档中描述的250 MB限制。该文件夹中的唯一文件是模型的检查点文件 (.pth) 和自定义预测例程所需的 tarball。
创建模型的命令:
将运行时版本更改为1.14
会导致相同的错误。我尝试将 --machine-type 参数更改为mls1-c4-m2
像 Parth 建议的那样,但我仍然遇到相同的错误。
生成的setup.py
文件my_custom_code-0.1.tar.gz
如下所示:
预测器的相关代码片段:
此外,我在 AI Platform 中为模型启用了日志记录,并得到以下输出:
google-cloud-platform - gcloud 项目所有者权限被拒绝
所以我试图在谷歌云的人工智能平台上运行一个训练作业,用于通过命令行用 tensorflow 编写的图像分类器:
但我不断收到错误:(gcloud.ai-platform.jobs.submit.training) User [myemail@gmail.com] does not have permission to access project [my_project] (or it may not exist): Permission denied on 'locations/value' (or it may not exist).
我不明白这是怎么可能的,因为我拥有 gcloud 上的项目(使用该电子邮件地址),甚至在 IAM 策略绑定上明确链接到它。有谁之前经历过这个吗?
额外信息:
我以个人身份使用 gcloud,不涉及任何组织。因此,IAM 策略绑定中链接的唯一成员是我和 gcloud 服务帐户。
gcloud ai-platform local train
当使用相同的参数在本地(使用)训练时,该代码可以完美运行。
google-cloud-composer - 用气流清洁过去的 ai 平台模型版本
我正在使用气流在 gcloud AI 平台中安排模型版本的训练我设法安排模型的训练,版本的创建,然后我使用此 DAG 将最后一个版本设置为默认版本:
我想在这个 dag 中清理以前版本的模型。我想我应该使用 MLEngineVersionOperator 的“列表”和“删除”操作,如下所示:
我读到了使用 Xcom 在删除中使用列表运算符的结果,但我不知道如何做到这一点。
任何有关如何进行的建议或解决方案将不胜感激。谢谢!
python-3.x - 如何将多个 ipynb 文件(在 GCP 中)转换为 py 文件
有什么方法可以将 ipynb 文件转换为 .py
我尝试了文件扩展名更改方法,但转换后无法执行(.py)文件。
我还看到了一种将 ipynb 文件转换为 .py (nbconvert) 的方法,但它没有用。
---->(nbconvert 方法在我的本地机器上工作)
但我需要在 GCP 中执行操作(存储在我的存储桶中的文件)
下面是我用来将 ipynb 转换为 py 的代码。无法通过此转换。
还有其他方法吗?
google-cloud-automl - 我可以为 GCP 人工智能平台培训作业指定超时吗?
我最近提交了一个训练作业,其命令如下:
(有关此命令如何工作的更多信息:https ://cloud.google.com/ml-engine/docs/training-jobs )
我的代码中有一个错误导致作业继续运行,而不是终止。两周和 61 美元后,我发现了自己的错误并取消了工作。我想确保我不会再犯这种错误。
我正在考虑使用timeout
训练容器中的命令来杀死进程,如果它需要太长时间(典型的运行时间大约是 2 或 3 小时),但我不相信容器会杀死自己,我更愿意配置 GCP 来杀死它外部。
有没有办法做到这一点?
google-cloud-platform - GCP AI 平台训练不能使用全部 GPU 配额
在 GCP -> IAM & admin -> Quotas 页面上,us-central1 的服务“Compute Engine API NVidia V100 GPUs”显示限制为 4。但是当我使用以下命令在 GCP AI 平台上提交训练作业时,我收到一条错误消息允许的最大 V100 GPU 为 2。
这是命令:
这是错误消息:
这是Compute Engine 网页上的 GPU说明 8 个 NVIDIA® Tesla® V100 GPU 在区域us-central1-a
、us-central1-b
、us-central1-c
和中可用us-central1-f
。我的默认区域是us-central1-c
.
我应该怎么做才能使用所有 4 个 V100 GPU 进行训练?谢谢。
更新 1(2020 年 1 月 14 日):在此页面上,它说明了需要增加的全局 GPU 配额以匹配每个区域的配额。但是我在配额页面上的任何地方都找不到它。
为了保护 Compute Engine 系统和用户,新项目具有全局 GPU 配额,这限制了您可以在任何受支持的区域中创建的 GPU 总数。当您申请 GPU 配额时,您必须为要在每个区域创建的 GPU 模型申请一个配额,并为所有区域中所有类型的 GPU 总数申请一个额外的全局配额。
更新 2(2020 年 1 月 14 日):我联系了 GCP 以增加全球 GPU 配额以匹配我的区域配额。他们回答说,对于某些项目,这是需要的,但对于我的项目,没有必要这样做。
tensorflow - 向 Google 云提交 Keras 培训作业
我正在尝试遵循本教程: https ://medium.com/@natu.neeraj/training-a-keras-model-on-google-cloud-ml-cb831341c196
在 Google Cloud Platform 上上传和训练 Keras 模型,但我无法让它工作。
现在我已经从 GitHub 下载了这个包,我已经创建了一个带有 AI-Platform 和一个存储桶的云环境。
我正在将文件(具有建议的文件夹结构)上传到我的 Cloud Storage 存储桶(基本上到我的存储的根目录),然后在云终端中尝试以下命令:
但是我收到错误,首先找不到 cloudml-gpu.yaml文件,它说“没有这样的文件夹或文件”,然后试图删除它,我收到错误,因为它说--init--.py文件丢失,但它不是,即使它是空的(当我从教程 GitHub 下载时)。我猜我没有以正确的方式上传它。
关于我应该如何做到这一点的任何建议?教程本身中确实没有这方面的信息。
我在另一个指南中读到可以让 gcloud 打包并直接上传作业,但我不确定如何执行此操作或在我的终端中使用命令在哪里编写gcloud
命令?还是在浏览器的 Cloud Shell 中?以及如何定义我的 python 文件所在的路径?
应该提到我正在使用 Mac,并且对使用 Keras 和 Python 非常陌生。