c# - Azure ML Experiment Batch Webservice 调用失败,输出扩展无效
问题描述
我有一个 Azure 网络作业,它通过 HttpRequests 调用 ML 训练实验,利用 ML 门户网站中生成的代码:
var request = new BatchExecutionRequest()
{
Inputs = new Dictionary<string, AzureBlobDataReference>() {
{
"input1",
new AzureBlobDataReference()
{
ConnectionString = _connectionString,
RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{trainingDataFileName}"
}
},
},
Outputs = new Dictionary<string, AzureBlobDataReference>() {
{
"output1",
new AzureBlobDataReference()
{
ConnectionString = "azureStorageConnectionString",
RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/Model_2018421.ilearner"
}
},
},
GlobalParameters = new Dictionary<string, string>()
{
}
};
但是,请求失败并显示以下消息:
Blob 参考:experiments/experimentId/TenantId/Model_2018421.ilearner 的文件扩展名无效或丢失。此输出类型支持的文件扩展名是:\\".csv、.tsv、.arff\\"
我对此感到非常困惑,因为如果我期望一个训练有素的模型使用“.ilearner”作为模型的文件扩展名,那么它在所有地方的文档都是正确的。
我已经看到这个问题询问有关利用 DataFactory 的相同错误,以及 datascience.stackexchange上的这个问题。两人都没有任何线索、答案或其他后续行动。
任何有关我所缺少的见解将不胜感激!
解决方案
对于任何正在寻找一天中“不要想太多”的人:
我需要提供两个输出 blob 文件引用:
var request = new BatchExecutionRequest()
{
Inputs = new Dictionary<string, AzureBlobDataReference>() {
{
"input1",
new AzureBlobDataReference()
{
ConnectionString = _connectionString,
RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{trainingDataFileName}.csv"
}
},
},
Outputs = new Dictionary<string, AzureBlobDataReference>() {
{
"output1",
new AzureBlobDataReference()
{
ConnectionString = _connectionString,
RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{outputFileNameCsv}.csv"
}
},
{
"output2",
new AzureBlobDataReference()
{
ConnectionString = _connectionString,
RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{outputFileNameIlearner}.ilearner"
}
},
},
GlobalParameters = new Dictionary<string, string>()
{
}
};
美式英语中有句老话说不做假设,我假设第二个输出是批处理操作中使用的可选参数。由于我实际上并没有从每次调用中寻找多个结果,因此我认为删除第二个输出参数是安全的。
TL/DR:保留 Web 服务门户的“使用”选项卡生成的所有参数,并确保第一个参数是 .csv 文件引用。
推荐阅读
- ansible - 通过 ansible 处理 Ubuntu 升级期间提出的所有问题?
- python - 在python中读取文本文件时如何忽略包含字母数字字符的行
- php - 如何进行聚合,使用 PHP MongoDB 驱动程序
- extentreports - 无法使用 ExtentReport 版本 4--Selenium-Java 捕获屏幕截图
- google-signin - 这是什么“登录到
使用谷歌提示调用? - android - EditText imeOptions 和数据绑定不起作用
- r - 如何在 R 中为 Plotly 子图添加绘图边界?
- kubernetes - 在 kubernetes 中成功部署后如何自动启动作业?
- node.js - 猫鼬 $pull 得到 nModified: 0
- python - 通过在列表中附加字典来创建数据框,外部函数的结果