注:并非原创 只是学习中遇到的 学习后直接积累了 1.深拷贝与浅拷贝
直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象内部的子对象。 b = a.copy() 深拷贝(deepcopy):copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。(参数,变则都变) c = copy.deepcopy(a)
2.detach 和 clone
- detach() 操作后的tensor 与 原始tensor 共享数据内存,当原始tensor在计算图中数值发生反向传播等更新之后,detach()的tensor值也发生了改变。
- torch.detach() — 新的tensor会脱离计算图,不会牵扯梯度计算
torch.clone() — 新的tensor充当中间变量,会保留在计算图中,参与梯度计算(回传叠加),但是一般不会保留自身梯度。
- pytorch.range() 和 pytorch.arange()**
区别在于:数据类型;是否包含终点
>>> y=torch.range(1,6)
>>> y
tensor([1., 2., 3., 4., 5., 6.])
>>> y.dtype
torch.float32
>>> z=torch.arange(1,6)
>>> z
tensor([1, 2, 3, 4, 5])
>>> z.dtype
torch.int64
4.torch.view view函数的作用为重构张量的维度,相当于numpy中resize()的功能 1.torch.view(a,b)表示重构的维度 2.torch.view(-1)表示重构为1维 3.torch.view(参数a,-1),则表示在参数b未知,参数a已知的情况下自动补齐列向量长度。 5.torch.zeros() torch.zeros()返回一个由标量值0填充的张量,其形状由变量参数size定义。 torch.zeros(size, out=None) 6 torch.sparse 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。 7.torch.sort 参数:
input (Tensor) – the input tensor
形式上与 numpy.narray 类似
dim (int, optional) – the dimension to sort along
维度,对于二维数据:dim=0 按列排序,dim=1 按行排序,默认 dim=1
descending (bool, optional) – controls the sorting order (ascending or descending)
降序,descending=True 从大到小排序,descending=False 从小到大排序,默认 descending=Flase
|