Как я могу Python Функция экспорта и восстановления (Pickle, Joblib, Dump)? - PullRequest
0 голосов
/ 26 марта 2020
def square(a):
    return a*a

joblib.dump(square,"squre.pkl")
joblib.load("square.pkl")(5)

output: 25

Нет проблем, когда я вызываю рассол в той же записной книжке. Но когда я открываю другой блокнот (новый блокнот) и вспоминаю рассол, я получаю следующую ошибку. Пожалуйста, помогите для решения.

joblib.load("square.pkl")(5)
output=AttributeError: module '__main__' has no attribute 'square'

Так что моя главная проблема заключается в следующем. Нет проблем с вызовом любой модели, которую я сохранил (lgbm, kmeans et c). но я не могу вспомнить функцию, которую я зарегистрировал. Спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Я решил это следующим образом

 import dill as pickle
    def square(a):
        return a*a
    with open('square.pkl', 'wb') as file:
        pickle.dump(square,file)

и откройте новый блокнот (python3)

 with open('square.pkl', 'rb') as file:
    B = pickle.load(file)
    B(5)
    output:25
...