首页 > 解决方案 > 如何使用 Python 函数导出和调用(Pickle、Joblib、Dump)?

问题描述

def square(a):
    return a*a

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

output: 25

当我在同一个笔记本中调用 pickle 时没问题。但是当我打开另一个笔记本(新笔记本)并回忆起泡菜时,我收到以下错误。请帮忙解决。

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

所以我的主要问题是这个。回忆我保存的任何模型(lgbm、kmeans 等)都没有问题。但我不记得我注册的功能。谢谢

标签: pythonfunctionpicklejoblib

解决方案


我解决了如下

 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

推荐阅读