我已经通过conda安装了pytorch和fastai:
conda list
...
fastai 1.0.28 py_1 fastai
pytorch 1.0.0 py3.6_1 pytorch
torchtext 0.3.1 <pip>
torchvision 0.2.1 py_2 pytorch
我正在使用其中一种fastai模型。 加载模型的代码是这样的(最后一行是失败的代码):
import numpy as np
import torch
from fastai import untar_data, URLs
import pickle
from fastai.text import get_language_model
from torchtext import data
# puzzling the pieces together
# get weights and itos
model_path = untar_data(URLs.WT103, data=False)
fnames = [list(model_path.glob(f'*.{ext}'))[0] for ext in ['pth', 'pkl']]
wgts_fname, itos_fname = fnames
itos = pickle.load(open(itos_fname, 'rb'))
wgts = torch.load(wgts_fname, map_location=lambda storage, loc: storage)
它产生错误:
dyld: Symbol not found: _PySlice_Unpack
Referenced from: /anaconda3/envs/t1/lib/python3.6/site-packages/torch/lib/libtorch_python.dylib
Expected in: flat namespace
浏览SO之后,我发现了以下相关问题: dyld: Symbol not found: error how to resolve this issue
显然,关于dyld符号的错误与缺少依赖项/二进制文件的路径断开有关。
在这种情况下,这对我来说似乎是pytorch内部问题。 当使用像conda这样的包管理器时,如何发生这种情况? 我的操作系统是MacOS 10.14.2