如何将 joblib 转储保存到另一个文件夹?
How do I save a joblib dump to another folder?
我的目标结构:
- 工具
- model_maker.py
- 型号
- 模型在这里
我当前的代码,位于工具目录中
joblib.dump(pipeline, "../models/model_full_June2020.jl")
抛出错误:
FileNotFoundError: [Errno 2] No such file or directory: '../models/model_full_June2020.jl'
我猜我的路径是错误的。如果我没记错的话 windows 路径和 python 不同于 python 和其他系统。当我将这个东西部署到 heroku 时,我想无论它依赖于哪个特定系统,它都需要工作。
如@john 所述,这并不意味着 tools
目录是当前目录。
以编程方式设置相对路径,而不是假设您的 cwd
在 tools
目录中。您可以执行以下操作
在包含脚本的文件中,您想执行如下操作:
import os
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'relative/path/to/file/you/want')
joblib.dump(pipeline, filename )
这应该可以正确定位文件,因为 filename
会产生绝对路径。
您可以简单地尝试一下。我为 LinearRegression 做了这个。
joblib.dump(lr,'models/rent_lr_model')
我的目标结构:
- 工具
- model_maker.py
- 型号
- 模型在这里
我当前的代码,位于工具目录中
joblib.dump(pipeline, "../models/model_full_June2020.jl")
抛出错误:
FileNotFoundError: [Errno 2] No such file or directory: '../models/model_full_June2020.jl'
我猜我的路径是错误的。如果我没记错的话 windows 路径和 python 不同于 python 和其他系统。当我将这个东西部署到 heroku 时,我想无论它依赖于哪个特定系统,它都需要工作。
如@john 所述,这并不意味着 tools
目录是当前目录。
以编程方式设置相对路径,而不是假设您的 cwd
在 tools
目录中。您可以执行以下操作
在包含脚本的文件中,您想执行如下操作:
import os
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'relative/path/to/file/you/want')
joblib.dump(pipeline, filename )
这应该可以正确定位文件,因为 filename
会产生绝对路径。
您可以简单地尝试一下。我为 LinearRegression 做了这个。
joblib.dump(lr,'models/rent_lr_model')