none
ML Service 学習モデル読込時の ModuleNotFoundError について RRS feed

  • 質問

  • ML Service
    の自動機械学習からデプロイまでのチュートリアルの手順
    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

    Predict test data
    の実行セル内で以下のエラーが発生しました。
    pickleとモジュールのインポート関連の問題のようなのですが
    解決方法をご存知でしたら教えてください。

    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'


    2018年12月3日 4:36

回答