关于Numpy的版本错误

在尝试使用openpcdet对waymo数据集进行evaluation时遇到了NotImplementedError,该错误与numpy版本过高有关。降级numpy到1.19.5解决了此问题,但随后又引发了numpy.core.multiarray导入失败的错误。问题最终定位到sharedarray库版本过高,通过降级sharedarray到3.1.0成功解决了所有问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 在使用openpcdet对waymo数据集进行evaluation的时候,报以下错误:
NotImplementedError: Cannot convert a symbolic Tensor (strided_slice:0) to a numpy array. This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported

这个错误往往是因为numpy版本过高(numpy>=1.20),将numpy降级到1.19.5解决以上问题

  1. 然而又出现下述错误:
Traceback (most recent call last):
  File "test.py", line 14, in <module>
    from eval_utils import eval_utils
  File "/home/wj/OpenPCDet-0.6.0/tools/eval_utils/eval_utils.py", line 8, in <module>
    from pcdet.models import load_data_to_gpu
  File "../pcdet/models/__init__.py", line 6, in <module>
    from .detectors import build_detector
  File "../pcdet/models/detectors/__init__.py", line 1, in <module>
    from .detector3d_template import Detector3DTemplate
  File "../pcdet/models/detectors/detector3d_template.py", line 6, in <module>
    from ...ops.iou3d_nms import iou3d_nms_utils
  File "../pcdet/ops/iou3d_nms/iou3d_nms_utils.py", line 8, in <module>
    from ...utils import common_utils
  File "../pcdet/utils/common_utils.py", line 7, in <module>
    import SharedArray
ImportError: numpy.core.multiarray failed to import

出现这个错误(ImportError: numpy.core.multiarray failed to import)往往是因为numpy版本过低,但是numpy=1.19.5显然已经很高,再升级到1.20又会面临第一个issue。追溯错误发现是import SharedArray导致报错,经查是因为sharedarray库版本过高,所以对其进行降级处理:

pip install sharedarray==3.1.0

问题解决!!

### 关于NumPyPython版本的兼容性 NumPy 是一个广泛使用的科学计算库,其开发团队通常会努力保持对多个 Python 版本的支持。以下是关于 NumPyPython 版本兼容性的详细说明: #### 官方支持策略 NumPy 的官方文档指出,它通常支持最新的三个主要 Python 发布分支以及一些较旧的长期支持 (LTS) 版本[^1]。这意味着如果你正在使用 Python 3.9,则应该能够找到与其兼容的最新版 NumPy。 #### 历史数据参考 根据历史记录,在某些情况下,特定版本NumPy 可能不会完全适配所有的 Python版本。例如: - **Python 3.6 至 3.8**: 这些版本被大多数现代 NumPy 版本所支持。 - **Python 3.9**: 被认为是从 NumPy 1.20 开始正式支持的最低 Python 版本[^5]。 - **Python 3.10+:** 对这些更新的 Python 版本的支持可能需要等待新的 NumPy 更新发布。 对于提到的具体情况——即当前使用的是 Python 3.9 并尝试安装 NumPy 2.0.0——需要注意的一点是,截至最近的信息显示,尚未有名为 “NumPy 2.0.0” 的稳定发行版存在;目前最发布的稳定版本接近于 1.x 系列[^4]。 如果发现升级后无变化或者遇到错误提示,可能是由于以下原因造成的: - 当前环境中已存在的 NumPy 版本未被正确卸载; - 使用了不匹配的操作系统架构包文件; - 或者网络连接问题阻止了新版本的成功下载和替换操作完成。 因此建议先确认目标机器上的确切环境配置再采取行动,并通过命令行工具 pip 来管理依赖关系更为稳妥可靠的方式来进行软件包维护工作。 ```bash pip install --upgrade numpy ``` 上述脚本可用于确保获取到适合您现有解释器设置的最佳可用选项之一。 ### 数据存储扩展功能 另外值得注意的是,除了常规数组运算外,NumPy 提供了一种简便的方法来保存和加载 `.npy` 文件格式的数据集以便后续重复利用或共享给其他开发者继续研究下去[^3]。这进一步增强了跨平台间协作的可能性同时也简化了许多日常任务流程中的复杂度处理需求场景下的效率表现水平提升空间巨大!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值