为深度学习创建PyTorch张量 - 最佳选项
正如我们所看到的,PyTorch张量是torch.Tensor
PyTorch类的实例。张量的抽象概念与PyTorch张量之间的区别在于,PyTorch张量为我们提供了一个可以在代码中操作的具体实现。
在上一篇文章中,我们看到了如何使用数据(如Python列表、序列和NumPy ndarrays)在PyTorch中创建张量。给定一个numpy.ndarray
,我们发现有四种方法可以创建一个torch.Tensor
对象。
这里是一个快速回顾:
> data = np.array([1,2,3])
> type(data)
numpy.ndarray
> o1 = torch.Tensor(data)
> o2 = torch.tensor(data)
> o3 = torch.as_tensor(data)
> o4 = torch.from_numpy(data)
> print(o1)
tensor([1., 2., 3.])
> print(o2)
tensor([1, 2, 3], dtype=torch.int32)
> print(o3)
tensor([1, 2, 3], dtype=torch.int32)
> print(o4)
tensor([1, 2, 3], dtype=torch.int32)
我们在这篇文章中的任务是探索这些选项之间的区别,并为我们创建张量的需求提出最佳选项。
不同系统上的Numpy dtype
行为
根据你的机器和操作系统,你的dtype
可能与这里和视频中显示的不同。
Numpy根据它是在32位还是64位系统上运行来设置其默认dtype
,并且在Windows系统上的行为也有所不同。
这个链接提供了关于在Windows系统上看到的差异的更多信息。受影响的方法是:tensor
、as_tensor
和from_numpy
。
感谢hivemind的David找出了这一点!