多层感知机(MLP)模型实现

在pytorch中构建一个自定义神经网络模型步骤:从torch.nn中的Module类派生一个子类,并实现构造函数和forward函数.其中,构造函数定义了模型所需要的成员对象,如构成该模型的各层,并对其中的参数进行初始化等.而forward函数用来实现该某块的前向过程,即对输入进行逐层的处理,从而得到最终的输出结果,代码如下:

import torch
from torch import nn
class MLP (nn.Module):
    def __init__(self,input_dim,hidden_dims,num_class):
        super (MLP,self).__init__()
        self.linear1 = nn.Linear(input_dim,hidden_dims)  #线性变换,输入层到隐藏层
        self.activate = torch.relu #使用ReLU激活函数
        self.linear2 = nn.Linear(hidden_dims,num_class) #线性变换,隐藏层到输出层

    def forward(self,inputs):
        hidden = self.linear1(inputs)
        activation = self.activate(hidden)
        outputs = self.linear2(activation)
        probs = torch.softmax(outputs,dim=1)  #获得每个输入属于某一类别的概率
        return probs

mlp = MLP (input_dim=4,hidden_dims=5,num_class=2)
inputs = torch.rand(3,4) #输入形状为(3,4)的张量,3表示有3个输入,4表示每个输入有4个维度
probs = mlp(inputs)
print (probs) #每三个输入对应输出的概率

你可能感兴趣的:(多层感知机(MLP)模型实现)