☰
深度学习-- RestNet34实现X光肺炎识别
2026/9/26 2:48:09 网站建设 项目流程
  • 🍨本文为🔗365天深度学习训练营中的学习记录博客
  • 🍖原作者:K同学啊
  • 一、前期准备

    1. 模块导入与GPU设置​

    2. 导入数据​​​​

    3. 划分数据集​

    二、ResNet34模型

  • 1. 调用模型​

  • 2. 查看模型详情​​

  • 3.手动搭建ResNet34

  • 三、训练模型

  • 1. 编写训练函数​

    2. 编写测试函数​

    4. 正式训练​​

    四、结果可视化

    1. Loss与Accuracy图​​

    ​​2. 模型评估​


    四、学习心得

  • ResNet 的核心是残差连接。残差块的输出是 ReLU(F(x) + x),卷积层只需要学习输入和输出之间的差值,梯度还能顺着捷径直接传回前面的层,所以网络加深后不容易退化。

  • 读懂官方代码的结构输出,就能手动搭出 ResNet34。整体结构是:7×7 卷积 + 最大池化,然后 4 个 stage 分别堆叠 3、4、6、3 个 BasicBlock,最后接全局平均池化和全连接层,一共 1 + 16×2 + 1 = 34 层。搭建时有三个要点:

    • layer 2~4 的第一个块会把尺寸减半、通道翻倍,这时捷径上要加 1×1 卷积 + BN(也就是 downsample)来对齐形状;

    • 卷积后面紧跟 BN,所以卷积层不需要 bias;

    • 用 _make_layer 按个数堆叠 BasicBlock,代码会简洁很多。

    搭好后打印出的结构和官方完全对应。

  • 迁移学习效果很明显。调用官方 ResNet34 并加载 ImageNet 预训练权重,只要把最后的 fc 换成 2 类输出。第 1 轮测试准确率就到了 97.4%,20 轮后最佳测试准确率是 98.8%。

  • ResNet34 比 VGG-16 更深,参数却少得多。它的层数是 VGG-16 的两倍多,参数量只有 2129 万,而上周的 VGG-16 约 1.34 亿。主要原因是 ResNet 用全局平均池化代替了 VGG 那几个巨大的全连接层。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询