医疗影像丨Unet图像分割丨YOLO算法丨知识图谱丨神经网络丨DeepLab算法
网址:2.2-Resnet网络架构原理分析_哔哩哔哩_bilibili
Resnet网络架构原理分析
堆叠网络层数的时候发现越堆叠效果越差,Resnet网络可以跳过一些效果差的层,让其效果至少不必原来差

在ResNet中,使用加法实现“跳过某些网络层”的核心思想源于残差学习(Residual Learning)
1. 残差学习的基本思想:
- 传统网络直接学习目标映射 \( H(x) \),而ResNet改为学习残差 \( F(x) = H(x) - x \)。通过将目标映射分解为 \( H(x) = F(x) + x \),网络只需学习输入与输出之间的差值(残差),而非完整的映射。
2. 加法操作的作用:
- 恒等映射:当残差 \( F(x) \) 趋近于零时,输出 \( H(x) = x \),相当于跳过了当前残差块中的所有层。这种设计允许网络在训练中自动决定某些层的贡献程度,若某层冗余,其权重可通过训练趋近于零,使输入直接传递到输出。
- 梯度传播优化:反向传播时,加法操作将梯度分为两条路径:一条通过残差块(可能包含多层),另一条直接通过跳跃连接。即使残差路径的梯度因深度而衰减,跳跃连接仍能保留梯度(导数为1),避免梯度消失。
3. 维度匹配与调整:
- 当输入与输出维度不同时,ResNet使用1x1卷积调整跳跃连接的维度,确保加法操作可行。这保持了残差学习的普适性,适用于不同深度的模块。
4. 深层网络的训练优势:
- 跳跃连接为信息提供了“高速公路”,允许数据绕过复杂变换直接传递。这降低了深层网络的训练难度,使网络能有效利用增加的深度,而非因梯度问题导致性能下降。
总结:ResNet中的加法操作通过残差学习机制,使网络能够灵活跳过冗余层(残差趋零),同时优化梯度流动,解决深度网络的训练难题。这种设计不仅提升了模型性能,还为构建更深层网络提供了可行方案。
albumentations库-图像增强库
albumentations是专门用来做图像数据增强的。现用现查网址:
第三方教程:Albumentations库:为自定义数据进行数据增强-CSDN博客
U-net
网络结构简单,适合小目标检测(比如医学方向)


特征融合:一般有两种,特征加法(对位相加)、特征拼接(变成更长的特征)。以前特征加法用得比较多,现在特征拼接用得比较多,拼接完之后再下采样得到相同的大小(可以实现特征筛选的步骤,而特征加法是做不到的)
U-net++


U-net +++

U2-net
空洞卷积dilation参数——让我们不改变特征图大小的情况下,让感受野变大
U2-net 可以适应很多类型的图片的任务,效果都不错

deeplab系列
图像分割中的传统做法:
为了增大感受野,通常都会选择pooling操作,但是也会损失一部分信息
方法一 、空洞卷积


空洞卷积比较适合那种大的目标检测,比如人,比如常见物体的检测。而不太适合小目标检测(因为小目标不需要大的感受野),比如医疗相关的细胞检测等等
方法二、SPP (Spatial Pyramid Pooling Layer,空间金字塔池化层)
SPP层是通过不同的池化层,得到不同的规格大小的特征,然后再进行特征拼接,得到统一大小的特征,再进行后续操作。可以适用于图片不同的输入规格的情况,保证输出特征是固定的(主要是全连接层,要求特征数是固定的,卷积层、池化层不要求)。

常用的多尺度特征提取方法:
方法1:普通的,将不同特征进行分别的特征提取,最后把特征拼接
方法2:Encoder-Decoder,就是U-net
方法3:空洞卷积
方法4:SPP

SPP改进版本-ASPP(SPP的改进版本,在SPP中引入了不同倍率的空洞卷积)

deepLabV3+ 解析

pascal数据集
很多图像任务都可以做,是一个比较全面的,通用的经典的数据集。
网址:The PASCAL Visual Object Classes Challenge 2012 (VOC2012)
pytorch 的hub模块
pytorch给我们做好了一些现成深度学习模块,不需要我们自己手写,比如u-net,deeplab等常见的深度学习模型,我们可以直接使用。在hub模块中。如需完整模型列表,可访问 [PyTorch Hub 官网](https://pytorch.org/hub) 或通过代码查询支持的模型。
1. 图像分类模型
PyTorch Hub 提供了多种经典的图像分类模型,这些模型经过预训练,可直接用于迁移学习或微调:
- AlexNet:早期的深度卷积神经网络。
- ResNet 系列:包括 ResNet-18、ResNet-50、ResNet-101 等不同深度的残差网络。
- VGG 系列:如 VGG11、VGG16、VGG19 及其带批量归一化的变体(VGG11_bn 等)。
- DenseNet:密集连接网络,如 DenseNet-121、DenseNet-169 等。
- MobileNet:轻量级网络,适用于移动端部署(如 MobileNet V2)。
- Inception:如 Inception-v3,支持多尺度特征提取。
示例代码:
```python
model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)
```
2. 图像分割模型
针对语义分割任务,Hub 提供以下模型:
- DeepLabV3:基于 ResNet-101 的语义分割模型(如 deeplabv3_resnet101)。
- FCN:全卷积网络(如 fcn_resnet101),适用于像素级分类。
示例代码:
```python
model = torch.hub.load('pytorch/vision:v0.4.2', 'deeplabv3_resnet101', pretrained=True)
```
3. 生成模型
PyTorch Hub 支持生成对抗网络(GAN)等生成模型,例如:
- PGAN(Progressive GAN):用于生成高分辨率图像。
- 其他生成模型可通过 Hub 的扩展库或第三方仓库加载。
4. 自然语言处理模型
虽然搜索结果中未明确列出 NLP 模型的具体名称,但 PyTorch Hub 集成了 Hugging Face Transformers 等库,支持加载如 BERT、**GPT** 等预训练语言模型。例如:
```python
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-0.5B-Instruct')
```
#- 5. 其他模型与自定义扩展
- 自定义模型发布:用户可通过在 GitHub 仓库中添加 hubconf.py 文件发布自己的模型。
- 模型列表查询:使用 torch.hub.list() 查看特定仓库支持的模型,例如:
```python
torch.hub.list('pytorch/vision:v0.10.0') # 返回该版本所有可用模型
```
### 使用场景与优势
1. 快速原型开发:一行代码加载模型,加速实验。
2. 迁移学习:微调预训练模型以适应新任务(如气温预测中的全连接层调整)。
3. 跨领域研究:如物理信息神经网络(PINN)用于求解微分方程。
---
### 注意事项
- 模型版本兼容性:不同 PyTorch 版本支持的模型可能不同(如 pytorch/vision:v0.4.2 和 v0.10.0)。
- 依赖项:部分模型需安装 torchvision 或其他扩展库。
- 资源需求:大模型(如 ResNet-152)需较高计算资源,推荐使用 GPU。
如需完整模型列表,可访问 [PyTorch Hub 官网](https://pytorch.org/hub) 或通过代码查询支持的模型。
R(2+1)D网络(视频、时间序列)
R2D

R3D


