最近在新环境中安装了PyTorch 2.4版本,简单测试了import,发现直接报错:
import torchA module that was compiled using NumPy 1.x cannot be run in
NumPy 2.1.0 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.Traceback (most recent call last): File "<stdin>", line 1, in <module>File "/Users/yimlu/anaconda3/envs/nlu/lib/python3.10/site-packages/torch/__init__.py", line 1477, in <module>from .functional import * # noqa: F403File "/Users/yimlu/anaconda3/envs/nlu/lib/python3.10/site-packages/torch/functional.py", line 9, in <module>import torch.nn.functional as FFile "/Users/yimlu/anaconda3/envs/nlu/lib/python3.10/site-packages/torch/nn/__init__.py", line 1, in <module>from .modules import * # noqa: F403File "/Users/yimlu/anaconda3/envs/nlu/lib/python3.10/site-packages/torch/nn/modules/__init__.py", line 35, in <module>from .transformer import TransformerEncoder, TransformerDecoder, \File "/Users/yimlu/anaconda3/envs/nlu/lib/python3.10/site-packages/torch/nn/modules/transformer.py", line 20, in <module>device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'),
/Users/yimlu/anaconda3/envs/nlu/lib/python3.10/site-packages/torch/nn/modules/transformer.py:20: UserWarning: Failed to initialize NumPy: _ARRAY_API not found (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/torch/csrc/utils/tensor_numpy.cpp:84.)device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'),
看错误信息是Numpy 2.1导致的,推测是 numpy的版本和 torch的版本不兼容.网上搜到的信息是 numpy 2.1有一些特性还没有被 torch 2.4支持,因此需要把numpy 降级2.0之前的版本.
pip install "numpy<2.0"
再次进行导入,问题解决.