您的位置:首页 > 房产 > 建筑 > 廊坊疫情最新消息今天新增病例_重庆建设工程信息网安全管理_整合营销的最高阶段是_百度网盘下载app

廊坊疫情最新消息今天新增病例_重庆建设工程信息网安全管理_整合营销的最高阶段是_百度网盘下载app

2024/10/5 16:15:56 来源:https://blog.csdn.net/kiba518/article/details/141406340  浏览:    关键词:廊坊疫情最新消息今天新增病例_重庆建设工程信息网安全管理_整合营销的最高阶段是_百度网盘下载app
廊坊疫情最新消息今天新增病例_重庆建设工程信息网安全管理_整合营销的最高阶段是_百度网盘下载app

前言

本文主要讲神经网络的上半部分。
这篇文章开始有很多公式了,这些公式都很简单,但是如果是不经常在脑海里思考公式的人,那可能需要多花点时间做一下自我训练,个人感觉,也就几天时间,就能把自己感觉给调整出来。
习惯了公式看下面内容就会轻松很多,另外如果要深入学习人工智能,熟练的认知公式也是个必须的事情。
另外,我发现我前面文章写的有歧义的地方还是挺多,虽然,已经改了一部分,但,可能还有没发现的,大家看的时候尽量多理解着看吧。
本着目的是学会使用神经网络的开发,至于数学的部分,就能过就过吧。

神经网络

先学个例子

先结合以前的知识理解一个例子,理解了这个例子,后面理解神经网络就容易多了。

class NeuralNet1(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(Rectified Linear Unit) 作为激活函数self.linear2 = nn.Linear(hidden_size,1) #隐藏层的列转成1列def forward(self, x):out = self.linear1(x)out = self.relu(out)out = self.linear2(out)# sigmoid at the endy_pred = torch.sigmoid(out)return y_pred 
model=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 的全称是 Binary Cross Entropy Loss(二元交叉熵损失)。
ps:大家有没有注意到,自从我们开始使用model后,就再也没使用 requires_grad来开启张量计算了,这是因为model在计算的时候自己就开了【torch.tensor(0.0, requires_grad=True)】

激活函数

激活函数其实也是函数,就是把x进行一下数据转换。
我们上篇文章已经使用过了Sigmoid把数据转换成百分比了。
下面看一下最受欢迎的激活函数都有什么,如下:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com