如何修复';导入错误:无法导入名称';numpy类型地图'';用Python?

如何修复';导入错误:无法导入名称';numpy类型地图'';用Python?,python,pytorch,object-detection,Python,Pytorch,Object Detection,我已经按照中的说明进行了多次配置:代码按其应该的方式编译。在运行代码时,我遇到以下错误: Traceback (most recent call last): File "tools/train_net_step.py", line 21, in <module> import nn as mynn File "/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/__init__.py", l

我已经按照中的说明进行了多次配置:代码按其应该的方式编译。在运行代码时,我遇到以下错误:

    Traceback (most recent call last):
    File "tools/train_net_step.py", line 21, in <module>
    import nn as mynn
    File "/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/__init__.py", line 2, in <module>
    from .parallel import DataParallel
    File "/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/parallel/__init__.py", line 3, in <module>
    from .data_parallel import DataParallel, data_parallel
    File "/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/parallel/data_parallel.py", line 4, in <module>
    from .scatter_gather import scatter_kwargs, gather
    File "/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/parallel/scatter_gather.py", line 8, in <module>
    from torch.utils.data.dataloader import numpy_type_map
    ImportError: cannot import name 'numpy_type_map'
回溯(最近一次呼叫最后一次):
文件“tools/train\u net\u step.py”,第21行,在
将nn导入为mynn
文件“/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/_init__.py”,第2行,在
from.parallel导入数据并行
文件“/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/parallel/_init__.py”,第3行,在
from.data\u parallel导入DataParallel,data\u parallel
文件“/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/parallel/data_parallel.py”,第4行,在
from.scatter\u collect导入scatter\u kwargs,collect
文件“/home/federico/PycharmProjects/Detectron.pytorch/lib/nn/parallel/scatter_-gather.py”,第8行,在
从torch.utils.data.dataloader导入numpy\u类型\u映射
ImportError:无法导入名称“numpy\u type\u map”
我也曾多次尝试用谷歌搜索,但我找不到解决方法。我能做什么?我正在使用PyTorch 0.4.1和PyTorch nightly 1.0.0-dev

编辑:多亏了sancelot,我成功地解决了这个错误(PyTorch 0.4.0做到了这一点)。无论如何,现在我有另一个错误:

    Traceback (most recent call last):
    File "tools/train_net_step.py", line 27, in <module>
    from modeling.model_builder import Generalized_RCNN
    File "/home/federico/PycharmProjects/Detectron.pytorch/lib/modeling/model_builder.py", line 11, in <module>
    from model.roi_pooling.functions.roi_pool import RoIPoolFunction
    File "/home/federico/PycharmProjects/Detectron.pytorch/lib/model/roi_pooling/functions/roi_pool.py", line 3, in <module>
    from .._ext import roi_pooling
    File "/home/federico/PycharmProjects/Detectron.pytorch/lib/model/roi_pooling/_ext/roi_pooling/__init__.py", line 3, in <module>
    from ._roi_pooling import lib as _lib, ffi as _ffi
    ImportError: /home/federico/PycharmProjects/Detectron.pytorch/lib/model/roi_pooling/_ext/roi_pooling/_roi_pooling.so: undefined symbol: PyInt_FromLong
回溯(最近一次呼叫最后一次):
文件“tools/train\u net\u step.py”,第27行,在
从modeling.model\u builder导入广义\u RCNN
文件“/home/federico/PycharmProjects/Detectron.pytorch/lib/modeling/model_builder.py”,第11行,在
从model.roi\u pool.functions.roi\u pool导入roipool函数
文件“/home/federico/PycharmProjects/Detectron.pytorch/lib/model/roi_pooling/functions/roi_pool.py”,第3行,在
从..\u外部导入roi\u池
文件“/home/federico/PycharmProjects/Detectron.pytorch/lib/model/roi\u pooling/\uext/roi\u pooling/\uuuuu init\uuuuu.py”,第3行,在
from.\u roi\u将导入库作为\u库,ffi作为\u ffi
ImportError:/home/federico/PycharmProjects/Detectron.pytorch/lib/model/roi\u pooling//u ext/roi\u pooling//u roi\u pooling.so:未定义符号:PyInt\u from long

这次我不能得到的是:这是外部库给出的错误吗?我使用的是我的教授以前制作的一个蟒蛇环境,他用它来探测。。。所以我猜不出为什么会这样。

我想detectron和您正在使用的所需pytorch版本之间存在版本不匹配。 如果您查看最新的pytorch源代码,就不会发现numpy_type_映射组件。
是的,这是由于Pytorch版本不匹配造成的。解决方案取决于您愿意达到的程度,有时如果您对黑客攻击没问题,只是让它运行,那么只需复制粘贴旧版本的
numpy\u type\u map

numpy_type_map = {
     'float64': torch.DoubleTensor,
     'float32': torch.FloatTensor,
     'float16': torch.HalfTensor,
     'int64': torch.LongTensor,
     'int32': torch.IntTensor,
     'int16': torch.ShortTensor,
     'int8': torch.CharTensor,
     'uint8': torch.ByteTensor,
 }

或者,在版本1.1.0之前,您可以尝试替换导入语句

来自

from torch.utils.data.dataloader import numpy_type_map
from torch.utils.data._utils.collate import numpy_type_map

from torch.utils.data.dataloader import numpy_type_map
from torch.utils.data._utils.collate import numpy_type_map

N.b.仍将在较新版本中出现。同样,这是一个黑客快速解决方案。

好的,我会尝试降级并让您知道,谢谢。