【发布时间】:2019-07-31 08:33:10
【问题描述】:
我正在设置一个脚本,我需要使用fast-ai 包中的一些函数。事实是我在 Windows 上,当我定义路径时,来自 fast-ai 的名为 load_learner 的函数无法加载模型。
我已经尝试将函数更改为:
state = pickle.load(open(str(path) + '/' + str(fname), 'rb'))
代替:
state = pickle.load(open(path/fname, 'rb'))
但我收到此错误:
File "lib\site-packages\fastai\basic_train.py", line 462, in load_learner
state = pickle.load(open(path/fname, 'rb'))
File "\lib\pathlib.py", line 1006, in __new__
% (cls.__name__,))
NotImplementedError: cannot instantiate 'PosixPath' on your system
我的路径定义为:
folder_path = './models/model1'
fname = 'model.pkl'
我将函数称为:
model = load_learner(folder_path, fname)
如何在此函数中使用 Windows 路径?
更新 1
发布的答案仅在 Linux 上是正确的。我在 Windows 上仍然有这个问题。我没有找到在 Windows 上通过 PosixPath 的方法。我找到的唯一解决方案是从我的模块中更改内部包,但这不是解决此类问题的安全方法。
提前致谢。
【问题讨论】:
-
这可能是windows分隔符的问题,它是路径的双反斜杠
\\,您可以使用os.sepsee轻松获得所有系统的正确分隔符。尝试用windows格式分隔符替换所有/ -
请发布异常的整个堆栈跟踪。
-
首先尝试将您的包更新到最新版本。有问题的代码不存在,因此它可能会解决您遇到的问题。
标签: python pytorch pickle pathlib fast-ai