持续更新中,先占个坑 : )
该篇文章记录本人在科研与工程中运用PyTorch时遇到的一些(细节)知识点/坑。很多内容可能平时不太会注意,也可能在功能实现上没有任何影响,但是出于性能(内存利用与时间)的考虑,这些内容应该值得注意。
以下内容均默认已导入 PyTorch 和 NumPy:
import torch
import numpy as np
一、numpy.ndarray 转 torch.Tensor
1. from_numpy
将 numpy.ndarray 转为 Tensor 有很多方法,torch.from_numpy
就是其中一个。根据官方文档可以知道,这个方法得到的 Tensor 是共享 numpy.ndarray 的内存的,也就是说改变其中一个的值也会改变另一个。
>>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> t = torch.from_numpy(a)
>>> t
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> a[0, 0] = 100
>>> a
array([[100, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9]])
>