4

我已经通过 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

4

0 回答 0