timm(PyTorch Image Models)是一个集合了多种SOTA(State of the Art)计算机视觉模型、层、实用工具、优化器、调度器、数据加载器、增强策略以及训练/验证脚本的库,旨在简化模型的选择、创建和微调过程。它支持超过700种预训练模型,并且可以轻松地进行加载和使用。
timm库的基本模型:
经典模型
- AlexNet:较早的卷积神经网络模型,具有开创性意义。
- VGG:通过堆叠多个3x3的卷积核来增加网络深度,提高模型性能。
- ResNet(残差网络):通过引入残差连接解决了深度网络训练中的梯度消失/爆炸问题,极大地推动了深度学习的发展。ResNet系列包括ResNet18、ResNet34、ResNet50、ResNet101、ResNet152等多个版本。
- Inception:通过并行使用不同大小的卷积核来捕捉不同尺度的特征,提高了模型的性能。
- DenseNet(密集连接网络):通过密集连接(即每一层的输入都来自前面所有层的输出)来加强特征传播,减少参数数量,提高计算效率。
现代模型
- EfficientNet:通过模型缩放(包括深度、宽度和分辨率)来平衡模型的精度和效率,实现了在多个基准数据集上的领先性能。
- MobileNet:专为移动和嵌入式设备设计的轻量级模型,通过深度可分离卷积来减少计算量和参数量。
- Vision Transformers(ViT):将自然语言处理中的Transformer结构应用于图像领域,通过自注意力机制来捕捉图像中的全局信息。
- ConvNeXt:Meta AI提出的卷积神经网络架构,融合了Vision Transformer的一些设计理念,旨在改进传统的卷积神经网络。
其他模型
- RegNet、RepVGG、Swin Transformer等:这些模型也是TIMM中提供的,它们在各自的领域或基准数据集上取得了优异的性能。
安装timm库
timm库的安装非常简单,可以通过pip命令直接安装:
pip install timm
或者通过GitHub仓库进行安装:
git clone https://github.com/rwightman/pytorch-image-models
cd pytorch-image-models && pip install -e .
创建模型
使用timm库创建模型非常简单。可以使用`create_model`函数来创建模型。这个函数是一个工厂方法,可以用来创建timm库中的300多个模型。
import timm
import torch
# 创建一个模型实例,例如resnet34
model = timm.creat