PyTorch 中文教程
1.torch.nn.Parameter()
PyTorch里面的torch.nn.Parameter()
PyTorch里面的torch.nn.Parameter() 简书
用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size))
,看了官方教程里面的解释也是云里雾里,于是在栈溢网看到了一篇解释。首先可以把这个函数理解为类型转换函数,将一个不可训练的类型Tensor
转换成可以训练的类型parameter
并将这个parameter
绑定到这个module
里面(net.parameter()
中就有这个绑定的parameter
,所以在参数优化的时候可以进行优化的),所以经过类型转换这个self.v
变成了模型的一部分,成为了模型中根据训练可以改动的参数了。使用这个函数的目的也是想让某些变量在学习的过程中不断的修改其值以达到最优化。
2、torch.pow()
功能: 实现张量和标量之间逐元素求指数操作, 或者在可广播的张量之间逐元素求指数操作.
3、torch.div()
功能:张量和标量做逐元素除法 或者两个可广播的张量之间做逐元素除法
4、torch.sum()
功能:对输入的tensor数据的某一维度求和,一共两种用法
1.torch.sum(input, dtype=None)
2.torch.sum(input, list: dim, bool: keepdim=False, dtype=None) → Tensor
input:输入一个tensor
dim:要求和的维度,可以是一个列表
keepdim:求和之后这个dim的元素个数为1,所以要被去掉,如果要保留这个维度,则应当keepdim=True
#If keepdim is True, the output tensor is of the same size as input except in the dimension(s) dim where it is of size 1.
import torch
a = torch.ones((2, 3))
a1 = torch.sum(a)
a2 = torch.sum(a, dim=0)
a3 = torch.sum(a, dim=1)
print(a)
print(a1)
print(a2)
print(a3)
输出:
此处也可将dim=0理解为纵向压缩,如:
2=1+1
2=1+1
2=1+1
故a被压缩成了 [2,2,2] size也从2*3压缩成了1*3
将dim=1 理解为横向压缩,同纵向压缩
5、pytorch中squeeze()和unsqueeze()函数
【学习笔记】pytorch中squeeze()和unsqueeze()函数介绍
6、Pytorch——tensor.expand_as()
Pytorch——tensor.expand_as()函数示例
ensor.expand_as()这个函数就是把一个tensor变成和函数括号内一样形状的tensor,用法与expand()类似。
差别是expand括号里为size,expand_as括号里为其他tensor。
7、什么是L2 Norm