Pyorch之numpy与torch之间相互转换

目录

代码

输出


numpy中的ndarray转化成pytorch中的tensor : torch.from_numpy()

pytorch中的tensor转化成numpy中的ndarray : numpy()

代码

import numpy as np
import torch

np_arr = np.array([1,2,3,4])
tor_arr=torch.from_numpy(np_arr)
tor2numpy=tor_arr.numpy()
print('\nnumpy\n',np_arr,'\ntorch\n',tor_arr,'\nnumpy\n',tor2numpy)

输出

numpy
 [1 2 3 4] 
torch
 tensor([1, 2, 3, 4], dtype=torch.int32) 
numpy
 [1 2 3 4]

### 兼容的 NumpyPyTorch 版本 为了确保程序能够正常运行,NumpyPyTorch 的版本需要相互兼容。以下是关于如何找到兼容版本的一些指导: #### 1. **PyTorchNumpy 的依赖** PyTorch 官方通常会推荐特定范围内的 Numpy 版本来支持其功能。例如,在某些情况下,当使用较新的 Numpy 版本时,可能会触发类似于 `UserWarning: A NumPy version >=1.17.3 and <1.25.0` 这样的警告消息[^4]。 因此,对于大多数稳定版的 PyTorch 来说,建议使用的 Numpy 版本应满足以下条件: - 至少为 1.17.3 或更高。 - 不超过 1.25.0(具体取决于所使用的 PyTorch 版本)。 #### 2. **常见兼容组合** 下表列出了部分已知的 PyTorchNumpy 的兼容版本组合: | PyTorch Version | Compatible Numpy Versions | |------------------|----------------------------| | 1.8.x | 1.19.x | | 1.9.x | 1.19.x - 1.21.x | | 1.10.x | 1.19.x - 1.21.x | | 1.11.x | 1.19.x - 1.21.x | | 1.12.x | 1.19.x - 1.23.x | | 1.13.x | 1.19.x - 1.23.x | 需要注意的是,这些数据可能并非完全详尽,实际应用中还需要考虑其他库的影响,比如 TorchVision[^2]。 #### 3. **验证当前环境中的版本** 可以通过以下 Python 脚本检查当前环境中安装的 PyTorchNumpy 版本是否一致: ```python import torch import numpy as np print(f"Torch Version: {torch.__version__}") print(f"Numpy Version: {np.__version__}") if not (np.version.version.startswith('1.19') or np.version.version.startswith('1.20') or np.version.version.startswith('1.21')): print("Warning: The current Numpy version may be incompatible with your installed PyTorch.") else: print("The environment seems to have a compatible configuration.") ``` 此脚本可以帮助快速判断是否存在潜在的不兼容问题。 #### 4. **解决 YOLOv5 中的 RuntimeError** 在配置 YOLOv5 环境过程中遇到的 `RuntimeError: Couldn't load custom C++ ops.` 错误可能是由于多个因素引起的,其中包括但不限于 PyTorchTorchVision 的版本冲突[^3]。除了上述提到的内容外,还应注意以下几点: - 如果从源码编译了 TorchVision,则需确认该过程无任何错误发生。 - 尝试清理并重新创建虚拟环境以排除残留文件干扰的可能性。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值