【问题标题】:No module named 'automl' when unpickle auto-trained model取消自动训练模型时没有名为“automl”的模块
【发布时间】:2019-05-04 09:50:12
【问题描述】:

我正在尝试使用我自己的数据集而不是 MNIST 数据集来重现以下 2 个教程。 https://docs.microsoft.com/ja-jp/azure/machine-learning/service/tutorial-auto-train-models https://docs.microsoft.com/ja-jp/azure/machine-learning/service/tutorial-deploy-models-with-aml

关于 '/notebooks/tutorials/03.auto-train-models.ipynb' 这里没有问题。我有'model.pkl'。

然而, '/notebooks/tutorials/02.deploy-models.ipynb' 在“预测测试数据”单元格中出现以下错误。 我想这是“泡菜”和“进口”的问题。

请告诉我解决方案。

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-6-11cf888b622f> in <module>
      2 from sklearn.externals import joblib
      3 
----> 4 clf = joblib.load('./model.pkl')
      5 # clf = joblib.load('./sklearn_mnist_model.pkl')
      6 y_hat = clf.predict(X_test)

~/anaconda3_501/lib/python3.6/site-packages/sklearn/externals/joblib/numpy_pickle.py in load(filename, mmap_mode)
    576                     return load_compatibility(fobj)
    577 
--> 578                 obj = _unpickle(fobj, filename, mmap_mode)
    579 
    580     return obj

~/anaconda3_501/lib/python3.6/site-packages/sklearn/externals/joblib/numpy_pickle.py in _unpickle(fobj, filename, mmap_mode)
    506     obj = None
    507     try:
--> 508         obj = unpickler.load()
    509         if unpickler.compat_mode:
    510             warnings.warn("The file '%s' has been generated with a "

~/anaconda3_501/lib/python3.6/pickle.py in load(self)
   1048                     raise EOFError
   1049                 assert isinstance(key, bytes_types)
-> 1050                 dispatch[key[0]](self)
   1051         except _Stop as stopinst:
   1052             return stopinst.value

~/anaconda3_501/lib/python3.6/pickle.py in load_global(self)
   1336         module = self.readline()[:-1].decode("utf-8")
   1337         name = self.readline()[:-1].decode("utf-8")
-> 1338         klass = self.find_class(module, name)
   1339         self.append(klass)
   1340     dispatch[GLOBAL[0]] = load_global

~/anaconda3_501/lib/python3.6/pickle.py in find_class(self, module, name)
   1386             elif module in _compat_pickle.IMPORT_MAPPING:
   1387                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1388         __import__(module, level=0)
   1389         if self.proto >= 4:
   1390             return _getattribute(sys.modules[module], name)[0]

ModuleNotFoundError: No module named 'automl'

【问题讨论】:

  • 它有效。谢谢!

标签: python pickle azure-machine-learning-studio automl


【解决方案1】:

您必须包含 azureml-train-automl 包。你必须这样做:

导入 azureml.train.automl

【讨论】:

  • 这行得通——当你解开你需要导入的时候并不那么明显!
【解决方案2】:

您似乎没有安装automl python 包。可以通过import azureml.train.automl 导入,但是确实应该使用pip 安装。

按照this page 上的指南了解如何为 Azure ML 服务设置 Python 环境。

对于大多数用例,notebookautoml 是唯一需要的额外包,因此命令

pip install --upgrade azureml-sdk[notebooks,automl]

应该足够了。

使用pip list 查看所有已安装的包和版本号。如果软件包安装正确,您应该会看到azureml-train-automl

【讨论】:

  • 如何使用 environment.yml 文件安装这些额外的包?你能有一个条目吗 - azureml-sdk[automl]
  • @IvoMerchiers(我知道,我的答案迟到了一年,但迟到总比抱歉好),我对 .yml 文件没有太多经验,所以我不太确定如何这会奏效。我建议你玩一下,看看有什么效果。
猜你喜欢
  • 2018-06-16
  • 2020-01-09
  • 2020-06-27
  • 2022-10-06
  • 2018-01-03
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 2019-09-26
相关资源
最近更新 更多