Pytorch构建普通的BP神经网络
Pytorch实现简单BP神经网络
·
作者学习记录方便查询
在学习复杂度较小的数据时,可以使用BP神经网络。
模型中主体部分使用线性层,防止线性层的表达能力不足,在每层之间添加激活函数,增加非线性能力。
self.hiddden=torch.nn.Linear(num_hidden1,num_hidden2)# 线性层 隐藏层
self.leakyrelu = torch.nn.LeakyReLU()# 激活函数
整体模型
class BPnet_model(torch.nn.Module):
def __init__(self,n_feature,n_hidden1,n_hidden2,n_hidden3,n_output):
super(BPNetModel, self).__init__()
self.hiddden1=torch.nn.Linear(num_feature,num_hidden1)#定义隐层网络
self.hiddden2=torch.nn.Linear(num_hidden1,num_hidden2)
self.hiddden3=torch.nn.Linear(num_hidden2,num_hidden3)# 备用
self.out=torch.nn.Linear(num_hidden2,num_output)#定义输出层网络
self.leakyrelu = torch.nn.LeakyReLU()
self.sigmoid= torch.nn.Sigmoid()
def forward(self,x):
x=x.to(torch.float32)
x=self.hiddden1(x) #隐层激活函数采用relu()函数
x=self.leakyrelu(x)
x=self.hiddden2(x)
x=self.leakyrelu(x)
x=self.out(x)
out = self.sigmoid(x)# 因为在这次的任务中想要回归输出概率值,所以添加sigmoid函数
return out
更多推荐
所有评论(0)