取消函数时的 Flask AttributeError
Flask AttributeError when unpickling a function
我有一个笔记本文件,我在其中转储了一个模型和一个名为 custom_pipeline()
的函数
pickle.dump(custom_pipeline, open('custom_pipeline.pkl','wb'))
pickle.dump(model, open('model.pkl','wb'))
在我的 app.py 文件中,我正在反序列化模型和函数,如下所示
import pickle
app = Flask(__name__)
model = pickle.load(open('model.pkl', 'rb'))
custom_pipeline = pickle.load(open('custom_pipeline.pkl', 'rb'))
unpickling 模型文件没有错误,应用程序运行成功。但是当我为 custom_pipeline
添加 unpickling 行时,会抛出以下错误:
AttributeError: Can't get attribute 'custom_pipeline' on <module '__main__' from flask_path>
我需要反序列化该函数并使用我从应用程序输入的数据调用它。我是 Flask 的新手,想知道如何在应用程序文件中使用自定义函数。
除非函数被可序列化 class 环绕,否则我们无法序列化函数。如果我们直接想要,那么 cloudpickle
允许 pickle 函数。
import cloudpickle
cloudpickle.dump(custom_pipeline, open('custom_pipeline.pkl','wb'))
然后在应用文件中
import pickle
import cloudpickle
app = Flask(__name__)
model = pickle.load(open('model.pkl', 'rb'))
custom_pipeline = cloudpickle.load(open('custom_pipeline.pkl', 'rb'))
我有一个笔记本文件,我在其中转储了一个模型和一个名为 custom_pipeline()
pickle.dump(custom_pipeline, open('custom_pipeline.pkl','wb'))
pickle.dump(model, open('model.pkl','wb'))
在我的 app.py 文件中,我正在反序列化模型和函数,如下所示
import pickle
app = Flask(__name__)
model = pickle.load(open('model.pkl', 'rb'))
custom_pipeline = pickle.load(open('custom_pipeline.pkl', 'rb'))
unpickling 模型文件没有错误,应用程序运行成功。但是当我为 custom_pipeline
添加 unpickling 行时,会抛出以下错误:
AttributeError: Can't get attribute 'custom_pipeline' on <module '__main__' from flask_path>
我需要反序列化该函数并使用我从应用程序输入的数据调用它。我是 Flask 的新手,想知道如何在应用程序文件中使用自定义函数。
除非函数被可序列化 class 环绕,否则我们无法序列化函数。如果我们直接想要,那么 cloudpickle
允许 pickle 函数。
import cloudpickle
cloudpickle.dump(custom_pipeline, open('custom_pipeline.pkl','wb'))
然后在应用文件中
import pickle
import cloudpickle
app = Flask(__name__)
model = pickle.load(open('model.pkl', 'rb'))
custom_pipeline = cloudpickle.load(open('custom_pipeline.pkl', 'rb'))