激活函数和全连接层——基于Pytorch

本文详细介绍了神经网络中的激活函数,包括ReLU、sigmoid、tanh等,探讨了它们的作用、优缺点,并重点讲解了PyTorch中的ReLU实现。此外,还阐述了全连接层的概念、作用及在PyTorch中的实现nn.Linear。
摘要由CSDN通过智能技术生成

1、激活函数

1.1、什么是激活函数?

神经网络中的每个神经元接受上一层的输出值作为本神经元的输入值,并将处理结果传递给下一层(隐藏层或输出层)。在多层神经网络中,上层的输出和下层的输入之间具有一个函数关系,这个函数称为激活函数。

我们先来看一个简单的神经网络,如下图:
在这里插入图片描述
它由一个输入层,一个隐藏层和一个输出层组成。隐藏层含3个神经元,其中一个神经元内部结构如下图:
在这里插入图片描述

1.2、为什么需要激活函数?

如果不用激活函数,每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,那么网络的逼近能力就相当有限。
就如上图的神经网络,如果没有激活函数,那么:
O u t p u t = w 7 ( i n p u t 1 ∗ w 1 + i n p u t 2 ∗ w 2 ) + w 8 ( i n p u t 1 ∗ w 3 + i n p u t 2 ∗ w 4 ) + w 9 ( i n p u t 1 ∗ w 5 + i n p u t 2 ∗ w 6 ) Output = w7(input1*w1+input2*w2)+w8(input1*w3+input2*w4)+w9(input1*w5+input2*w6) Output=w7(input1w1+input2w2)+w8(input1w3+input2w4)+w9(input1w5+input2w6)

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是带池化层和全连接层卷积神经层后拼接dueling DQN的价值函数、优势函数网络的PyTorch代码: ```python import torch.nn as nn import torch.nn.functional as F class DuelingDQN(nn.Module): def __init__(self, input_shape, num_actions): super(DuelingDQN, self).__init__() self.input_shape = input_shape self.num_actions = num_actions self.conv1 = nn.Conv2d(input_shape[0], 32, kernel_size=8, stride=4) self.conv2 = nn.Conv2d(32, 64, kernel_size=4, stride=2) self.conv3 = nn.Conv2d(64, 64, kernel_size=3, stride=1) self.fc_adv1 = nn.Linear(self.feature_size(), 128) self.fc_adv2 = nn.Linear(128, num_actions) self.fc_val1 = nn.Linear(self.feature_size(), 128) self.fc_val2 = nn.Linear(128, 1) def forward(self, x): x = x / 255.0 x = F.relu(self.conv1(x)) x = F.relu(self.conv2(x)) x = F.relu(self.conv3(x)) x = x.view(x.size(0), -1) # flatten adv = F.relu(self.fc_adv1(x)) adv = self.fc_adv2(adv) val = F.relu(self.fc_val1(x)) val = self.fc_val2(val) return val + adv - adv.mean(dim=1, keepdim=True) def feature_size(self): return self.conv3(self.conv2(self.conv1(torch.zeros(1, *self.input_shape)))).view(1, -1).size(1) ``` 这个代码定义了一个名为DuelingDQN的类,它继承自`nn.Module`。类中定义了卷积神经网络层、池化层、全连接层,并且拼接了dueling DQN的价值函数和优势函数。在`forward`函数中,首先将输入的图像数据进行归一化处理,然后通过卷积神经网络层得到特征图,将特征图展平,并分别通过两个全连接层得到价值函数和优势函数。最后,将价值函数和优势函数拼接起来,得到最终的Q值。`feature_size`函数用于计算展平后的特征图大小。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值