parameter()函数:
在使用pytorch训练神经网络的时候,本质上面试训练一个函数,这个函数输入一个数据(比如cv中输入一张图像),输出一个预测(比如输出这一张图片中的物体是属于什么类别的)。然而在我们给定这个函数的结构(比如卷积、全连接等)之后,能学习的就是这个函数的参数了,我们再去设计一个损失函数,配合梯度下降法,使得我们学习到的函数(神经网络)能够尽量准确的完成预测的任务。
更加直白一点就是可以把这个函数理解为类型转换函数,将一个不可训练的类型tensor转换为可以训练的类型parameter并且将这个parameter绑定到这个module里面(net.parameter()中就有这个绑定的parameter,所以在参数优化的时候是可以进行优化的),所以经过类型转换这个self.v就变成了模型的一部分。成为了模型中的根据训练可以改动的参数了。使用这个函数的目的就是想让某些变量在学习的过程中不断地修改其自身的值以达到最优化。
torch.zero()函数:
torch.zeros(*sizes, out=None) → Tensor
返回一个全为标量0的张良,形状由可变参数size定义。
参数的含义:
size(int):整数序列,定义了输出的形状。
out(tensor,optional):结果张量
实战代码如下:
>>> torch.zeros(2, 3)
0 0 0
0 0 0
[torch.FloatTensor of size 2x3]生成2*3的张量矩阵
>>> torch.zeros(5)
0
0
0
0
0
[torch.FloatTensor of size 5]
x=torch.zeros(2,3,4)
print(x)
tensor([[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])生成2个3*4的矩阵
x=torch.zeros(2,3,4,5)
print(x)
tensor([[[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]]],
[[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]]]])
从后向前看,最后两位为数组的维度4*5,前一位3表示有3个4*5的矩阵,在前一位2表示,这样3个4*5的矩阵有2个,以此类推
参考地址:
https://blog.csdn.net/weixin_44966641/article/details/118730730?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165473591916781667840150%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165473591916781667840150&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-118730730-null-null.142^v11^pc_search_result_control_group,157^v13^control&utm_term=nn.Parameter&spm=1018.2226.3001.4187https://blog.csdn.net/weixin_44966641/article/details/118730730?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165473591916781667840150%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165473591916781667840150&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-118730730-null-null.142^v11^pc_search_result_control_group,157^v13^control&utm_term=nn.Parameter&spm=1018.2226.3001.4187https://blog.csdn.net/qq_42518956/article/details/103876885?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165473952416780357219771%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165473952416780357219771&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-103876885-null-null.142^v11^pc_search_result_control_group,157^v13^control&utm_term=torch.zeros%281%29&spm=1018.2226.3001.4187https://blog.csdn.net/qq_42518956/article/details/103876885?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165473952416780357219771%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165473952416780357219771&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-103876885-null-null.142^v11^pc_search_result_control_group,157^v13^control&utm_term=torch.zeros%281%29&spm=1018.2226.3001.4187