找回密码
 会员注册
查看: 186|回复: 0

零基础学习人工智能—Python—Pytorch学习(六)

[复制链接]

4

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-9-13 16:06:07 | 显示全部楼层 |阅读模式
前言本文主要讲神经网络的上半部分。这篇文章开始有很多公式了,这些公式都很简单,但是如果是不经常在脑海里思考公式的人,那可能需要多花点时间做一下自我训练,个人感觉,也就几天时间,就能把自己感觉给调整出来。习惯了公式看下面内容就会轻松很多,另外如果要深入学习人工智能,熟练的认知公式也是个必须的事情。另外,我发现我前面文章写的有歧义的地方还是挺多,虽然,已经改了一部分,但,可能还有没发现的,大家看的时候尽量多理解着看吧。本着目的是学会使用神经网络的开发,至于数学的部分,就能过就过吧。神经网络先学个例子先结合以前的知识理解一个例子,理解了这个例子,后面理解神经网络就容易多了。classNeuralNet1(nn.Module):def__init__(self,input_size,hidden_size):super(NeuralNet1,self).__init__()self,linear1=nn.Linear(input_size,hidden_size)#x的列转成隐藏层的列self.relu=nn.ReLU()#使用了ReLU(RectifiedLinearUnit)作为激活函数self.linear2=nn.Linear(hidden_size,1)#隐藏层的列转成1列defforward(self,x)ut=self.linear1(x)out=self.relu(out)out=self.linear2(out)#sigmoidattheendy_pred=torch.sigmoid(out)returny_predmodel=NeuralNet1(input_size=28*28,hidden_size=5)criterion=nn.BCELoss()结合我们之前的知识,上面代码就是定义了一个类,该类继承了Module。然后初始化函数接受了两参数,俩参数分别是x列,和隐藏层列,然后定义三个对象linear1,linear2,relu。然后forward就是执行,中间的转换逻辑是x列转成hidden列,hidden列转1列,这中间再加一个激活函数,我们先不管激活函数是什么,反正,代码结构,大概就是这样的逻辑。criterion=nn.BCELosS()是定义损失函数,BCELoss的全称是BinaryCrossEntropyLoss(二元交叉熵损失)。ps:大家有没有注意到,自从我们开始使用model后,就再也没使用requires_grad来开启张量计算了,这是因为model在计算的时候自己就开了【torch.tensor(0.0,requires_grad=True)】激活函数激活函数其实也是函数,就是把x进行一下数据转换。我们上篇文章已经使用过了Sigmoid把数据转换成百分比了。下面看一下最受欢迎的激活函数都有什么,如下:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 01:20 , Processed in 0.312746 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表