迁移学习 迁移学习的原理和方法 预训练模型(Pre-trained Model):预训练模型是指在大数据集上预先训练好的模型。这些模型通常用于图像识别、自然语言处理等任务,并且已经在诸如ImageNet、Wikipedia等大数据集上进行了训练,学习到了丰富的特征表示。 微调(Fine-tuning):微调是指在预训练模型的基础上,针对特定的任务或数据集进行进一步的训练。在这个过程中,通常会使用较小的学习率 2025-03-10 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
经典的卷积神经网络 LeNet 模型 LeNet-5 大小\(1\times32\times32\)的灰度图像,通过\(6\times1\times5\times5\)的filter,此时输出图像维度为\(6\times28\times28\), 通过Sigmoid激活函数后,再经过\(2\times2\)的平均池化(\(\mathrm{stride=2}\)),此时输出图像维度为\(6\times14\tim 2025-03-09 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
torchvision torchvision介绍 torchvision是一个与Pytorch深度学习框架紧密集成的计算机视觉库。它提供了许多用于图像处理、数据加载、模型预训练以及常见视觉任务(如图像分类、目标检测等)的工具和函数 torchvision模块 torchvision.datasets 用于加载特定数据集 这个模块提供了一组常用的视觉数据集,例如 CIFAR、MNIST、ImageNet 等。每个数据集都 2025-03-08 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #计算机视觉 #PyTorch
神经网络的评估模式和训练模式 评估模式和训练模式是pytorch神经网络两种不同的模型状态。 评估模式和训练模式 训练模式: 训练模式是模型在接收训练数据并进行学习时的状态。在这种模式下,模型会根据输入数据进行前向传播,计算损失,并通过反向传播更新权重。 特点: 权重更新: 模型的权重会根据损失函数的梯度进行更新。 Dropout激活: 如果模型中包含了Dropout层,这些层会在前向传播时随机将一部分神经元的输出置零,以减 2025-03-07 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
数据处理与加载 按照批次加载数据 Dataset torch.utils.data.Dataset是一个抽象类,表示数据集。用户需要自定义类来继承这个抽象类,并实现两个核心方法:__len__()和__getitem__() __len__():返回数据集的总大小 __getitem__(index):根据索引返回一个数据点 123456789101112from torch.utils.data impor 2025-03-06 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
图像增广 为什么要使用图像增广 防止过拟合:深度学习模型,尤其是复杂的模型,容易在训练数据上过拟合,即模型记住了训练数据中的特定细节而不是学习到通用的特征。图像增广通过引入变化的训练样本(相当于给训练样本添加噪声)帮助模型学习更鲁棒的特征,从而减少过拟合。 增加数据多样性:在实际应用中,输入到模型的图像可能会有各种不同的变化,如不同的拍摄角度、光照条件、尺度等。图像增广可以模拟这些变化,使模型能够更好地泛 2025-03-05 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #计算机视觉 #PyTorch
参数管理 状态字典 state_dict()方法用于返回模型所有参数和缓冲区的字典 state_dict 是一个字典,包含了模型的所有可学习参数(如权重和偏置)以及持久性缓冲区(如批量归一化的运行均值和方差)。这个字典的键通常是参数的名称。 比如: 1234567891011121314151617181920import torchimport torch.nnclass MLP(nn.Module): 2025-03-04 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
在GPU上训练模型 检查GPU的可用性 确保GPU可用并且正确安装了CUDA和Pytorch的CUDA版本 12import torchprint(torch.cuda.is_available()) # 应该返回True如果GPU可用 查询可用GPU数量 123import torchprint(torch.cuda.device_count()) 设置设备 通过torch.device()方式指定是使用CPU还是 2025-03-03 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
优化器 常见的优化器 SGD 随机梯度下降,基本的优化算法,它通过计算每个参数的梯度来更新参数。 我们可以使用SGD实现对所有样本的梯度下降、小批量梯度下降或者单样本的随机梯度下降。 1torch.optim.SGD(params, lr, momentum=0, dampening=0, weight_decay=0, nesterov=False) params:要优化的参数的迭代器或列表 lr:学 2025-03-02 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
损失函数 均方误差损失 均方误差损失,MSELoss,用于回归任务,计算预测值和真实值之间的均方误差 1torch.nn.MSELoss(reduction='mean') reduction:指定如何对输出进行降维,可选值为none、mean和sum none:不进行降维,返回每个样本的损失 mean:返回损失的均值,这是默认行为 sum:返回损失的总和 对创建的MSELoss 2025-03-01 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch