torch.tensor 和 torch.from_numpy
时间: 2023-06-21 13:13:01 浏览: 212
torch.tensor 和 torch.from_numpy 都可以用来将数据转换为 PyTorch 张量。
torch.tensor 可以接受各种类型的 Python 对象,包括列表、元组、NumPy 数组等,然后返回一个新的张量。例如:
```python
import torch
import numpy as np
# 从列表创建张量
a = torch.tensor([1, 2, 3])
print(a)
# 从NumPy数组创建张量
b = np.array([4, 5, 6])
c = torch.tensor(b)
print(c)
```
torch.from_numpy 则是专门用于将 NumPy 数组转换为张量的函数。与 torch.tensor 不同,torch.from_numpy 不会创建新的张量,而是直接使用输入的 NumPy 数组的内存来创建张量。例如:
```python
import torch
import numpy as np
# 创建NumPy数组
a = np.array([1, 2, 3])
# 从NumPy数组创建张量
b = torch.from_numpy(a)
print(b)
# 修改NumPy数组
a[0] = 4
# 查看张量内容
print(b)
```
在这个例子中,我们使用 torch.from_numpy 将 NumPy 数组 a 转换为张量 b,并将其打印出来。然后我们修改了 NumPy 数组 a 的第一个元素,再次打印张量 b,我们会发现张量 b 也发生了相应的改变,因为它们共享相同的内存。
阅读全文