PYTHON+AI LLM DAY FOURTY-FOUR
今天简单介绍一个神经网络模型(ANN)的搭建过程:在这里采用(3,3),(3,2),(2,2)结构.大致意思就是说:输入层有3个神经元接收信息,隐藏层有两层.分别是:3个神经元接收输入层的信息,然后另外2个神经元接收隐藏层里3个神经元的信息.最后这两个神经元将信息交给输出层2个神经元.当然,后续要让这个模型更加复杂,主要是多添加隐藏层的层数,在输入层和输入层也可添加神经元持续优化.首先导入torch包和nn包里面的Module和Linear模块.由于Module模块已经写好了方法,此时只需要重写__init__魔法方法和forward前向传播方法具体为:def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)然后就是定义神经网络结构:self.linear1 = Linear(3,3)
self.linear2 = Linear(3,2),self.out = Linear(2,2).初始化权重矩阵:这里分别用到了泽维尔正态初始化和凯明正态初始化.torch.nn.init.xavier_normal_(self.linear1.weight),torch.nn.init.kaiming_normal_
(self.linear2.weight),定义前向传播,每一层都是加权求和+激活函数. def forward(self,x),x = torch.
sigmoid(self.linear1(x)),x = torch.relu(self.linear2(x)),x = torch.softmax(self.out(x),dim=-1).return x
创建模型对象.创建一个变量接收前面创建的子类(重写Module模块那里),准备数据:data = torch.randn(5,3),3个特征,一定要与前面保持一致,5可以是任意数字.传给模型,打印输出即可.
