【问题标题】:Azure Machine Learning web service cannot read CSV from blobAzure 机器学习 Web 服务无法从 blob 读取 CSV
【发布时间】:2015-12-17 23:05:25
【问题描述】:

我已使用 Reader 模块成功部署了 ML Web 服务,以从我的 Blob 存储中获取 CSV 数据。通过在实验中可视化,我可以看到 CSV 数据是正确的。

但是,当我尝试使用来自此tutorial 的 BES 示例将 SAME CSV 数据作为 Web 服务的输入提供时,我收到以下错误:

Error 1000: AFx Library exception: table: The data set being scored must
contain all features used during training, missing feature(s): 'Col 2'.

这个错误没有意义,因为 SAME 数据已被实验成功接受。

还要注意,当我使用 TSV 格式时,也会出现同样的问题。

【问题讨论】:

  • 你能给我们看看你的 csv 数据样本吗
  • 1.32,somestring\r\n 3.34,anotherstring\r\n

标签: csv azure blob azure-machine-learning-studio


【解决方案1】:

这是我如何让它工作的方法。

1/ 我创建了一个与您描述的相似的实验。

阅读器从 blob 存储中读取以下文件:

col 1,col 2
1.32,somestring
3.34,anotherstring

应用 SQL 转换有以下语句:

select sum([col 1]) from t1

2/ 发布网络服务

3/ 转到批处理执行 (BES) 文档并复制 Python 代码

4/ 在文本编辑器中替换 invokeBatchExecutionService 方法开头记录的值(storage_account_name、storage_account_key、storage_container_name、api_key 值)

5/ 在 Azure ML 工作区中创建一个新的 Python 2 笔记本

在第一个单元格中,复制并粘贴以下代码:

with open('input1data.csv','a') as myfile:
    myfile.write("col 1,col 2\n")
    myfile.write("1.32,somestring\n")
    myfile.write("3.34,anotherstring\n")

在下一个单元格中,复制并粘贴您在第 4 步中编写的代码/

在下一个单元格中,复制并粘贴以下代码:

with open('myresults.csv','r') as myfile:
    for line in myfile:
        print(line)

按顺序执行单元格。 通过第三个单元格执行,您应该得到以下结果:

sum([col 1])

4.66

【讨论】:

  • 我将尝试 sql 转换并使用我的典型 C# BES 实现。谢谢
  • 这里SQL转换的目的只是为了简化问题。与 Python 笔记本相同,因为它取决于 Azure ML 环境,而不是您或我的 PC 环境。如果这能解决您的问题,请告诉我们。
  • SQL 转换使训练实验在训练模型组件上出现以下错误:输入数据集中的列数小于允许的最小值 2 列。
  • 我会考虑区域设置,但我在笔记本电脑上尝试使用十进制符号“,”和列表分隔符“;”。工作区和 IPython 笔记本按预期工作。您可以用“输入数据”模块替换阅读器,并在该“输入数据”模块中复制/粘贴我的 3 行(第 1 列,...)示例文件内容吗?
猜你喜欢
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2022-07-08
  • 1970-01-01
  • 2015-12-04
  • 2017-02-01
  • 1970-01-01
相关资源
最近更新 更多