使用pytorch快速搭建神经网络的两种方式

假设需要搭建一个3层神经网络:

输入层数为5,中间隐藏层的维度为10,输出层的维度为2,激活函数使用ReLU激活函数

第一种方法

使用nn.Sequential的方式定义,将网络以序列的方式进行组装,使用每个层前面的输出作为输入,内部会自动维护层与层之间的权重矩阵以及偏置向量,方式如下:

import torch

model = torch.nn.Sequential(
    torch.nn.Linear(5, 10),
    torch.nn.ReLU(),
    torch.nn.Linear(10, 2),
)
print(model)

out:
Sequential(
  (0): Linear(in_features=5, out_features=10, bias=True)
  (1): ReLU()
  (2): Linear(in_features=10, out_features=2, bias=True)
)

第二种方法

采用继承nn.Module,这需要我们自己实现__init__和 forward 前向传播,forward方法接收输入数据,经不同层函数处理,最后返回线性函数linear2的处理结果作为最终的预测输出值,具体如下:

import torch
class SimpleLayerNet(torch.nn.Module):
    def __init__(self, D_in, H, D_out):
        super(SimpleLayerNet,self).__init__()
        self.linear1 = torch.nn.Linear(D_in, H)
        self.relu = torch.nn.ReLU()
        self.linear2 = torch.nn.Linear(H , D_out)

    def forward(self,x):
        h_relu = self.relu(self.linear1(x))
        y_pred = self.Linear2(h_relu)
        return y_pred

model = SimpleLayerNet(5, 10, 2)
print(model)

out:
SimpleLayerNet(
  (linear1): Linear(in_features=5, out_features=10, bias=True)
  (relu): ReLU()
  (linear2): Linear(in_features=10, out_features=2, bias=True)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值