前言:工具用不好,万事都烦恼,原本真的就是很简单的一个思路实现,偏偏绕了一圈又一圈,今天就来认识认识Timm库吧!
目录
1.百度飞桨提供的-从零开始学视觉Transformer
2.资源:视觉Transformer优秀的开源工作
3.如何发现的Timm-Debug
4 Timm库
4.1 概念
4.2 Timm库的Vision Transformer活用
4.2.1 vision_transformer.py参数解读
4.2.2 Timm库的调用搭建Vision Transformer
目前,pytorch的知名度就不用说了,vision transformer的知名度,懂的都懂。其实,自己搭建vision transformer原本就是我的初衷,奈何资料根本就是无从下手,主要就是活用问题。今天,突然发现,也没想有想象中那么糟糕,从前人的实验中,还是由迹可寻的。
先放初步学习时候看的一些手把手搭建transformer框架理念和实践的资源:
理论还是比较详细的,代码实践则是构建在百度子的paddle库上,与pytorch有所区别,但本意还是不变的。
课程:从零开始学视觉Transformer
实践地址:BR-IDL/PaddleViT: PaddleViT: State-of-the-art Visual Transformer and MLP Models for PaddlePaddle 2.0+ (github.com)
Paddle-Pytorch API对应表:paddle pytorch 对照
视觉 Transformer 优秀开源工作:timm 库 vision transformer 代码解读
python timm库-CSDN博客_python timm
一直在尝试搭建自己的网络模型,却迟迟没有得到自己想要的效果,其实,挺痛苦的。究其原因还是复现前人的工作,复现了很多,但往往也没有深入解读,因为浮在表面,怎么可能去知晓他的真实意图呢?怎么知道他是怎么引用前人的经验呢?就开始了一遍又一遍的Debug,一个点一个点的突破学习,介于空降python的我,很多知识也开始积累起来了,果然,只要思想不滑坡,办法总比困难多!
本次就是科普timm库啦!这是我复现Debug所观察到作者进行Vision Transformer模块时,所进行的操作,根本就不是完全自己搭建哇!有现成的工具,加以整改就好!一切好像又变的美好了起来哈哈哈哈!
Timm:pyTorImageModels,简单来说,就是PyTorch的库之一,也算是torchvision.models的扩展模块,面向CV的模型,主要以分类为主。同时,所有的模型都有默认的API。
Github:rwightman/pytorch-image-models: PyTorch image models, scripts, pretrained weights -- ResNet, ResNeXT, EfficientNet, EfficientNetV2, NFNet, Vision Transformer, MixNet, MobileNet-V3/V2, RegNet, DPN, CSPNet, and more (github.com)
模型介绍:Model Summaries - Pytorch Image Models (rwightman.github.io)
模型结果:Results - Pytorch Image Models (rwightman.github.io)
Code:pytorch-image-models/vision_transformer.py at master · rwightman/pytorch-image-models (github.com)
(1)导入必要的库和模型:
import timm
(2)调用timm库中的模型:
model = timm.create_model("vit_deit_base_patch16_384", pretrained=pretrained)
(3)按需调整,有需求的话,后续整理