作者学习记录方便查询

在学习复杂度较小的数据时,可以使用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
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐