第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Pytorch之parameters net.parameters()

Pytorch之parameters net.parameters()

时间:2019-03-15 02:39:54

相关推荐

Pytorch之parameters net.parameters()

1.预构建网络

import torchimport matplotlib.pyplot as pltimport torch.nn.functional as F#torch.unsqueeze,torch.squeeze,torch.linspace我的之前文章有讲解#在torch中,只会处理2维的数据x=torch.unsqueeze(torch.linspace(-1,1,100),dim=1)#x.pow(2)的意思是x的平方y=x.pow(2)+0.2*torch.rand(x.size())class Net(torch.nn.Module):#继承torch的moduledef __init__(self,n_feature,n_hidden,n_output):super(Net,self).__init__() #继承__init__功能#定义每一层用什么样的样式self.hidden = torch.nn.Linear(n_feature,n_hidden) #隐藏层线性输出self.predict = torch.nn.Linear(n_hidden,n_output) #输出层线性输出def forward(self,x):# 激励函数(隐藏层的线性值)x=F.relu(self.hidden(x))x=self.predict(x) #输出值return xnet = Net(1,10,1)print(net)

网络结构

Net((hidden): Linear(in_features=1, out_features=10, bias=True)(predict): Linear(in_features=10, out_features=1, bias=True))

.parameters()

print(net.parameters())

结果:

<generator object Module.parameters at 0x7ff10f745bd0>

para = list(net.parameters())print(para)

结果:

[Parameter containing:tensor([[-0.5081],[-0.2130],[-0.0958],[ 0.3794],[-0.4636],[-0.4734],[-0.8516],[ 0.3321],[ 0.3731],[ 0.5131]], requires_grad=True), Parameter containing:tensor([ 0.7409, -0.2740, -0.0841, 0.2299, 0.4780, -0.5051, 0.4487, -0.2391,0.7307, 0.0095], requires_grad=True), Parameter containing:tensor([[-0.1322, -0.0158, 0.2620, 0.0499, 0.3109, 0.1158, -0.1099, -0.0687,-0.1557, 0.1864]], requires_grad=True), Parameter containing:tensor([0.1522], requires_grad=True)]

官方解释

class torch.nn.Parameter()

Variable的一种,常被用于模块参数(module parameter)。

Parameters 是 Variable 的子类。Paramenters和Modules一起使用的时候会有一些特殊的属性,即:当Paramenters赋值给Module的属性的时候,他会自动的被加到 Module的 参数列表中(即:会出现在 parameters() 迭代器中)。将Varibale赋值给Module属性则不会有这样的影响。 这样做的原因是:我们有时候会需要缓存一些临时的状态(state), 比如:模型中RNN的最后一个隐状态。如果没有Parameter这个类的话,那么这些临时变量也会注册成为模型变量。

Variable 与 Parameter的另一个不同之处在于,Parameter不能被 volatile(即:无法设置volatile=True)而且默认requires_grad=True。Variable默认requires_grad=False。

参数说明:

data (Tensor) – parameter tensor.

requires_grad (bool, optional) – 默认为True,在BP的过程中会对其求微分。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。