常平网站开发学建筑的女生后悔吗

张小明 2026/1/12 13:42:46
常平网站开发,学建筑的女生后悔吗,wordpress设计类网站,it培训机构哪个好些在深度学习领域#xff0c;从零开始训练一个高性能模型通常需要海量数据#xff08;如 ImageNet 的 120 万张图片#xff09;和昂贵的计算资源。对于大多数实际应用场景#xff0c;我们更倾向于使用迁移学习 (Transfer Learning)。本篇笔记将结合 Day 44 的代码#xff0c…在深度学习领域从零开始训练一个高性能模型通常需要海量数据如 ImageNet 的 120 万张图片和昂贵的计算资源。对于大多数实际应用场景我们更倾向于使用迁移学习 (Transfer Learning)。本篇笔记将结合 Day 44 的代码深入剖析如何利用预训练的ResNet18模型在CIFAR-10数据集上实现 86% 的高准确率。我们将重点拆解代码实现的每一个细节。一、 数据准备为模型提供高质量“燃料”数据增强是提升模型泛化能力的关键。在迁移学习中由于模型参数量较大ResNet18 约 1100 万参数而在小数据集CIFAR-10 仅 5 万张训练图上容易过拟合因此强力的数据增强尤为重要。1. 训练集增强策略 (代码详解)train_transform transforms.Compose([ # 1. 随机裁剪 (RandomCrop) # 先在图像四周填充 4 个像素的 0 (padding4)图像变大 (40x40) # 然后随机裁剪出 32x32 的区域。 # 作用让模型学习到物体在不同位置的特征模拟物体平移。 transforms.RandomCrop(32, padding4), # 2. 随机水平翻转 (RandomHorizontalFlip) # 以 50% 的概率水平翻转图像。 # 作用模拟物体朝向的变化如车头朝左或朝右增加数据多样性。 transforms.RandomHorizontalFlip(), # 3. 颜色抖动 (ColorJitter) # 随机调整亮度(brightness)、对比度(contrast)、饱和度(saturation) 和色相(hue)。 # 作用模拟不同光照条件下的物体让模型对颜色变化不敏感。 transforms.ColorJitter(brightness0.2, contrast0.2, saturation0.2, hue0.1), # 4. 随机旋转 (RandomRotation) # 在 -15度 到 15度 之间随机旋转。 # 作用模拟拍摄角度的微小偏差。 transforms.RandomRotation(15), # 5. 转为 Tensor # 将 PIL Image (0-255) 转换为 Tensor (0.0-1.0)并调整维度顺序 (HWC - CHW)。 transforms.ToTensor(), # 6. 标准化 (Normalize) # 使用 CIFAR-10 数据集的均值和标准差进行归一化(x - mean) / std # 作用加速收敛使数据分布更符合模型假设。 transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)) ])2. 测试集处理测试集只需进行必要的格式转换和标准化严禁使用随机增强操作以确保评估结果的稳定性与真实性。test_transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)) ])二、 模型构建ResNet18 的“换头”手术我们使用torchvision.models提供的 ResNet18。由于预训练模型是在 ImageNet1000 类上训练的我们需要修改其输出层Head以适配 CIFAR-1010 类。代码实现与解析from torchvision.models import resnet18 import torch.nn as nn def create_resnet18(pretrainedTrue, num_classes10): # 1. 加载预训练模型 # pretrainedTrue: 自动下载并加载在 ImageNet 上训练好的权重。 # 这些权重包含了提取通用视觉特征边缘、纹理、形状的能力。 model resnet18(pretrainedpretrained) # 2. 修改全连接层 (Head) # model.fc 是 ResNet 的最后一层全连接层。 # in_features: 获取原全连接层的输入维度ResNet18 为 512。 in_features model.fc.in_features # 3. 替换为新的全连接层 # 新层初始化时权重是随机的输出维度设为 num_classes (10)。 # 注意这一层没有预训练权重需要从头训练。 model.fc nn.Linear(in_features, num_classes) # 4. 转移到 GPU return model.to(device)三、 训练策略冻结与解冻 (Freeze Unfreeze)这是迁移学习中最核心的技巧。为了防止新初始化的全连接层随机权重产生的巨大梯度破坏预训练好的骨干网络Backbone我们通常采用分阶段训练。1. 冻结控制函数def freeze_model(model, freezeTrue): 控制模型参数的冻结与解冻 freezeTrue: 冻结卷积层只训练全连接层 freezeFalse: 解冻所有层进行全局微调 # 遍历模型的所有参数权重和偏置 for name, param in model.named_parameters(): # 我们始终要训练全连接层 (fc)所以只冻结非 fc 层 if fc not in name: # requires_gradFalse 表示该参数不计算梯度也不会被优化器更新 param.requires_grad not freeze # (可选) 打印当前冻结状态方便调试 frozen_params sum(p.numel() for p in model.parameters() if not p.requires_grad) print(f当前冻结参数量: {frozen_params}) return model2. 分阶段训练逻辑我们在train_with_freeze_schedule函数中实现了这一逻辑阶段一 (Epoch 0 ~ freeze_epochs-1)调用freeze_model(model, freezeTrue)。此时只有全连接层在更新。骨干网络充当一个固定的特征提取器。目的让全连接层的权重快速收敛到合理范围。阶段二 (Epoch freeze_epochs)调用freeze_model(model, freezeFalse)。解冻所有参数。降低学习率通常将学习率降低 10 倍如从 1e-3 降到 1e-4以免破坏预训练的特征。目的让整个网络针对 CIFAR-10 的特征进行微调 (Fine-tuning)进一步提升性能。# 伪代码演示阶段切换逻辑 if epoch freeze_epochs: print( 解冻所有层开始全局微调) model freeze_model(model, freezeFalse) # 降低学习率精细调整 optimizer.param_groups[0][lr] 1e-4四、 完整训练流程详解以下是整合了上述所有模块的训练循环核心代码每一行都有详细注释def train_one_epoch(model, loader, criterion, optimizer, device): model.train() # 切换到训练模式启用 Dropout 和 BatchNorm 更新 running_loss 0.0 correct 0 total 0 for batch_idx, (data, target) in enumerate(loader): # 1. 数据迁移到 GPU data, target data.to(device), target.to(device) # 2. 梯度清零 (标准步骤) optimizer.zero_grad() # 3. 前向传播 output model(data) # 4. 计算损失 loss criterion(output, target) # 5. 反向传播 # 如果是冻结阶段只有 fc 层的参数会有梯度 loss.backward() # 6. 参数更新 optimizer.step() # --- 统计指标 --- running_loss loss.item() _, predicted output.max(1) # 获取预测类别 total target.size(0) correct predicted.eq(target).sum().item() return running_loss / len(loader), 100. * correct / total五、 实验现象与经验总结在运行 Day 44 的代码时你会观察到几个有趣的现象起步即巅峰即使在冻结阶段前 5 个 Epoch准确率也能迅速达到 70% 左右。这归功于 ResNet 强大的特征提取能力。解冻后的飞跃第 6 个 Epoch解冻瞬间准确率通常会有一个明显的提升因为卷积层开始适应新数据集的特征分布如 CIFAR-10 的低分辨率。训练集 vs 测试集准确率倒挂现象训练准确率 (Training Acc) 往往低于测试准确率 (Test Acc)。原因训练集使用了强力数据增强裁剪、旋转、变色模型看到的是“变态”难度的图片而测试集是“标准”图片。模型就像是在负重训练训练集考试测试集时自然觉得轻松。最终性能经过 40 个 Epoch 的训练ResNet18 在 CIFAR-10 上通常能达到86% - 90%的准确率远超普通 CNN 的表现。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

成都网站logo设计郑州关键词排名公司电话

vLLM 多模态输入:图像、视频与音频处理全解析 在生成式 AI 快速演进的今天,单一文本推理已无法满足复杂应用场景的需求。从智能客服中的图文问答,到教育平台上的音视频内容理解,再到工业质检中的视觉分析——多模态能力正成为大模…

张小明 2026/1/4 0:58:18 网站建设

3D特效做首页的网站新媒体营销方案策划书

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

张小明 2026/1/3 20:01:37 网站建设

通辽北京网站建设北京百度公司总部电话

LobeChat直播话术生成器设计构想 在一场高密度、快节奏的直播带货中,主播往往需要同时应对产品讲解、用户提问、促销引导和情绪调动等多重任务。稍有迟疑,就可能错失转化窗口。然而,即便是经验丰富的主播,也难以做到对每款产品的参…

张小明 2026/1/3 16:35:05 网站建设

上海网站建设安全陆家网站建设

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个电商促销页面,主题是狂欢666大促。包含:1)顶部闪动666标语横幅 2)倒计时组件 3)商品瀑布流展示区 4)底部抢666元红包浮动按钮 5)点击红包触发随机红…

张小明 2026/1/3 20:01:30 网站建设

网站二级菜单是什么企业类型

徐陵《玉台新咏》详细介绍 书籍基本信息 书名:玉台新咏 编者:徐陵(南朝陈)【南朝陈代文学家】 成书时间:南朝陈代(约545-549年) 卷数:10卷 类别:诗歌总集、宫体诗、爱情诗…

张小明 2026/1/4 6:24:53 网站建设

宁阳网站建设价格官方网站开发合同

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

张小明 2026/1/3 21:36:10 网站建设