无法获取图像详细信息:请求中提供的环境版本 Autosave_(date)T(time)Z_******** 与环境不匹配

Unable to get image details : Environment version Autosave_(date)T(time)Z_******** provided in request doesn't match environ

在 AzureML Batchendpoint 上,我最近遇到了以下错误:

Unable to get image details : Environment version Autosave_(date)T(time)Z_******** provided in request doesn't match environ.

当我使用 yml 配置设置批处理端点时:

environment: azureml:env-name:env-version

因此,AzureML 使用我指定的版本 env-version 创建和构建环境,这只是一个数字(在我的例子中 = 3)。

然后由于一些奇怪的原因,AzureML创建了一个名为Autosave_(date)T(time)Z_********的额外环境版本,它不是构建的,而是基于之前刚刚创建的,然后它变成了latest版本那种环境。

总而言之,AzureML 不是在寻找我指定为 env-name:3 的版本,而是在寻找 env-name:Autosave_(date)T(time)Z_******** 然后抛出上述错误消息。

我发现问题是,当从 YAML 规范文件创建环境时,我的 conda 依赖项 之一是 cmake,我需要允许安装另一个 python 模块。 docker 图像与之前创建的环境完全相同。

从 YAML 文件中删除 cmake 依赖项,解决了这个问题。所以解决方法是使用 Dockerfile 安装它。

该错误消息一开始非常具有误导性,但在了解 AzureML 根据哈希值从环境定义中相应地重用缓存图像到 this[=14 后最终出现了=]

因此,出于这个原因,自动创建的 Autosave docker 图像引用了同一个构建,这仅在发送第一个作业时发生一次。