DeiT:量化 Vision Transformers 以实现高效部署

随着各行业对先进计算机视觉系统的需求持续激增,视觉变压器的部署已成为研究人员和从业者的焦点。然而,要充分发挥这些模型的潜力,需要对其架构有深入的了解。此外,制定有效部署这些模型的优化策略也同样重要。

使用平台:

OpenBayes贝式计算:点击注册可 get 4 小时 4090

登陆后,点击「公共教程」,找到「DeiT:量化 Vision Transformers 以实现高效部署」,该教程已经搭建好了环境。

点击「克隆」,将教程克隆至自己的容器。

分配资源完成后,当状态显示为「运行中」后,点击打开工作空间。

打开左侧 ViT.ipynb 文件

先运行 !pip install --user transformers==4.38.2 timm==0.9.16 这个代码,等待它安装依赖,安装好依赖后需要重启内核否则会显示缺失。

可以使用一张足球的图片来做检测,可以得到检测结果为足球。

ini 复制代码
#预测图片的地址
    image_path = "./pic/football.jpg"
    image_array = img.open(image_path)
    #Vit模型地址
    vision_encoder_decoder_model_name_or_path = "./my_model/"
    #加载ViT特征转化and预训练模型
    #feature_extractor = ViTFeatureExtractor.from_pretrained(vision_encoder_decoder_model_name_or_path)
    #model = ViTForImageClassification.from_pretrained(vision_encoder_decoder_model_name_or_path)
    feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch16-224')
    model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224')
    #使用Vit特征提取器处理输入图像,专为ViT模型的格式
    inputs = feature_extractor(images = image_array, 
                               return_tensors="pt")
    #预训练模型处理输入并生成输出 logits,代表模型对不同类别的预测。
    outputs = model(**inputs)
    #创建一个变量来存储预测类的索引。
    logits = outputs.logits
    # 查找具有最高 Logit 分数的类的索引
    predicted_class_idx = logits.argmax(-1).item()
    print(predicted_class_idx)
    #805
    print("Predicted class:", model.config.id2label[predicted_class_idx])
    #预测种类:足球

然后我们将一些所需要的模型转移到指定文件夹内。

然后再使用这个 DeiT 模型对图片进行分类。

这里会打印一个它的类别索引,是 978。

下面是一些代码的分解。

这是对模型的一些量化。

量化完成后会保存到左侧文件夹内。

模型优化完成后也会保存到左侧文件夹内。

可以对这个模型进行精简,部署在移动或者边缘设备上。

然后我们再对一些模型的变形体进行推理速度的的检测。

在完成后,就会对每个模型的推理事件进行一个检测。

如果觉得文字教程不好理解,可以在 B 站搜索视频 DeiT:量化 Vision Transformers 以实现高效部署,根据学习操作~

相关推荐
Coder个人博客2 分钟前
Transformers整体架构深度分析
人工智能·自动驾驶·transformer
Rabbit_QL5 分钟前
【深度学习基础】互相关与卷积的本质区别及在深度学习中的应用
人工智能·深度学习
甄心爱学习10 分钟前
数据挖掘-数据仓库与关联规则
人工智能·数据挖掘
郝学胜-神的一滴11 分钟前
机器学习数据工程之基石:论数据集划分之道与sklearn实践
开发语言·人工智能·python·程序人生·机器学习·sklearn
轻竹办公PPT11 分钟前
AI生成PPT好用吗?工作总结场景下的工具排名更新
人工智能·python·powerpoint
SCBAiotAigc13 分钟前
bash前面的(base)实现的原理
人工智能·python·ubuntu
AI小怪兽13 分钟前
YOLO-Master:基于混合专家模型加速与专用变换器的增强实时检测
人工智能·深度学习
Coder_Boy_15 分钟前
基于SpringAI的智能AIOps项目:部署相关容器化部署管理技术
人工智能·spring boot·k8s·运维开发
极新18 分钟前
生数科技商业化总监陈鹤天:视频生成破瓶颈,AI赋能漫剧产业|2025极新AIGC峰会演讲实录
人工智能·科技·aigc
u13013021 分钟前
开源版 NotebookLM:Open Notebook 深度体验与部署指南
人工智能·开源