趋近智
构建和训练神经网络涉及定义架构、计算输出(前向传播)、计算梯度(通过反向传播进行后向传播),以及使用优化算法更新权重。从头实现所有这些步骤,仅使用像 NumPy 这样的基础库,固然可行(也是一次很棒的学习实践),但它会迅速变得复杂且计算量大,特别是对于层数较多的网络和大型数据集。
这就是深度学习框架发挥作用的地方。它们提供更高层次的抽象,处理许多复杂细节,让您能够更高效地专注于模型的设计、训练和评估。可以将它们视为深度学习实践者的专用工具集。
框架提供多项重要优点:
虽然存在多种深度学习框架,但有两款已成为研究和工业界使用最广泛的:TensorFlow(常通过其高级 Keras API 使用)和 PyTorch。
以下是 PyTorch 中定义一个简单序列模型的示例,体现其面向对象的方法:
import torch
import torch.nn as nn
import torch.nn.functional as F
class SimpleNet(nn.Module):
def __init__(self):
super(SimpleNet, self).__init__()
# 定义层:输入特征=784,隐藏层=128个神经元,输出=10个类别
self.fc1 = nn.Linear(784, 128) # 784个输入特征,128个输出特征
self.fc2 = nn.Linear(128, 10) # 128个输入特征,10个输出特征(类别)
def forward(self, x):
# 定义前向传播:输入 x 如何流经各层
x = self.fc1(x)
x = F.relu(x) # 应用 ReLU 激活
x = self.fc2(x)
# 注意:用于输出概率的 Softmax 通常包含在损失函数中
# 以提高数值稳定性(例如 nn.CrossEntropyLoss)
return x
# 实例化模型
model = SimpleNet()
print(model)
SimpleNet(
(fc1): Linear(in_features=784, out_features=128, bias=True)
(fc2): Linear(in_features=128, out_features=10, bias=True)
)
输出呈现了在
SimpleNet模型中定义的层。
TensorFlow/Keras 和 PyTorch 都是强大的、成熟的框架,能够构建先进的模型。选择通常取决于以下几点:
幸运的是,核心原理(层、激活、损失函数、优化器、张量)大致相同,在一个框架中学到的技能通常可以迁移到另一个框架。在本课程的实践示例中,我们将主要使用 PyTorch,但无论具体框架如何,其基本原理都适用。
这些框架提供了我们将在后续章节中使用的必要工具,用于准备数据、定义模型架构、管理训练过程以及评估深度神经网络的性能。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造