如何在 PyTorch 中移动 numpy 数组到 CPU 或 GPU?
时间: 2024-11-12 13:42:05 浏览: 31
在 PyTorch 中,如果你想将一个从 numpy 创建的数组 (ndarray) 移动到 CPU 或者 GPU,你可以按照以下步骤操作:
1. 首先,导入 `torch` 和 `numpy` 库:
```python
import torch
import numpy as np
```
2. 然后,将 numpy 数组转换为 PyTorch 张量 (tensor)。这一步可以自动处理数据类型转换以及设备转移(如果数组在 CPU 上,会被移动到当前设备;如果数组已经在 GPU 上,会保持不变):
```python
numpy_array = ... # 你的 numpy 数组
pytorch_tensor = torch.from_numpy(numpy_array)
```
3. 如果你想明确地指定设备(例如,将张量放到 GPU),你可以这样做:
- 转换到 GPU:
```python
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
pytorch_tensor = pytorch_tensor.to(device)
```
- 或者,如果你知道设备ID(0 表示第一块 GPU,1 表示第二块等),可以用 `.to(device_id)`:
```python
pytorch_tensor = pytorch_tensor.to(torch.device('cuda:0'))
```
4. 完成以上步骤后,`pytorch_tensor` 就是一个位于指定设备(CPU 或 GPU)上的张量。
阅读全文