12 Pytorch小白从零学教程:神经网络基础之激活函数的使用
系列进度
PyTorch 入门 · 第 12 / 20 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
激活函数让网络不只是线性叠加。不同任务会用不同激活:隐藏层常用 ReLU,二分类常见 Sigmoid,多分类常见 Softmax 或直接交给交叉熵处理。
我会区分训练时的输出和展示给用户的概率。很多损失函数要求原始 logits,不要提前手动 softmax。
在前面的教程中,我们学习了如何定义一个神经网络模型。理解神经网络的运作不仅仅依赖于模型的结构,还离不开激活函数的使用。激活函数为神经元的输出添加非线性因素,是使得神经网络能够学习复杂的特征和模式的关键部分。在本篇中,我们将详细探讨常见的激活函数及其在PyTorch中的使用方法。
什么是激活函数?
激活函数定义了神经元的输出。对于任意输入,神经元的输出可以表示为:
使用 PyTorch 激活函数时,先看输出范围、梯度变化、饱和问题、层位置和任务类型。
这里,是权重,是偏置,是激活函数。激活函数的选择直接影响到模型的性能。常见的激活函数包括:
- Sigmoid
- Tanh
- ReLU(Rectified Linear Unit)
- Leaky ReLU
- Softmax
接下来,我们将逐一介绍这些激活函数,并在PyTorch中演示它们的使用。
1. Sigmoid 函数
Sigmoid函数的公式如下:
Sigmoid函数的输出范围是,非常适合用于二分类问题的输出层。
PyTorch示例:
import torch
import torch.nn as nn
# 定义Sigmoid激活函数
sigmoid = nn.Sigmoid()
# 测试输入
input_tensor = torch.tensor([-1.0, 0.0, 1.0])
output_tensor = sigmoid(input_tensor)
print(output_tensor) # 输出各个值的Sigmoid结果
2. Tanh 函数
tanh函数可表示为:
Tanh函数的输出范围是。与Sigmoid不同,Tanh在零附近有更强的非线性,通常能带来更好的收敛效果。
PyTorch示例:
# 定义Tanh激活函数
tanh = nn.Tanh()
# 测试输入
input_tensor = torch.tensor([-1.0, 0.0, 1.0])
output_tensor = tanh(input_tensor)
print(output_tensor) # 输出各个值的Tanh结果
3. ReLU 函数
ReLU(Rectified Linear Unit)是最常用的激活函数,公式为:
它在正数区间内是线性的,并且能有效缓解梯度消失问题。ReLU的输出为。
PyTorch示例:
# 定义ReLU激活函数
relu = nn.ReLU()
# 测试输入
input_tensor = torch.tensor([-1.0, 0.0, 1.0])
output_tensor = relu(input_tensor)
print(output_tensor) # 输出ReLU结果
4. Leaky ReLU 函数
Leaky ReLU是ReLU的一种变种,解决了ReLU的“神经元死亡”问题。它的定义为:
其中是一个小的常数。
PyTorch示例:
# 定义Leaky ReLU激活函数
leaky_relu = nn.LeakyReLU(negative_slope=0.01)
# 测试输入
input_tensor = torch.tensor([-1.0, 0.0, 1.0])
output_tensor = leaky_relu(input_tensor)
print(output_tensor) # 输出Leaky ReLU结果
5. Softmax 函数
Softmax函数常用于多分类问题,它将模型的输出转换为概率分布,公式如下:
Softmax的输出范围是,并且所有输出的和等于1。
PyTorch示例:
# 定义Softmax激活函数
softmax = nn.Softmax(dim=0)
# 测试输入
input_tensor = torch.tensor([1.0, 2.0, 3.0])
output_tensor = softmax(input_tensor)
print(output_tensor) # 输出Softmax结果
读到这里,可以把《Pytorch小白从零学教程:神经网络基础之激活函数的使用》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。
读完《Pytorch小白从零学教程:神经网络基础之激活函数的使用》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。
小结
在本节中,我们重点探讨了各种激活函数的定义及其在PyTorch中的实现。激活函数是神经网络中至关重要的一环,通过引入非线性,使得模型能够拟合复杂的数据分布。理解不同激活函数的特性可以帮助我们选择合适的激活函数以实现更好的模型性能。
读完《Pytorch小白从零学教程:神经网络基础之激活函数的使用》后,可以回头问三件事:它解决什么问题,哪一步最容易出错,自己能否拿一个小例子跑通。
在下一篇教程中,我们将学习如何定义损失函数,进一步提升我们对神经网络训练过程的理解。
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
Pytorch小白从零学教程:神经网络基础之激活函数的使用适合谁读?
这是 PyTorch 入门 系列第 12 / 20 篇,适合正在学习PyTorch 入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇PyTorch 入门教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读