BNext二值化图像分类-英文-通用-small

我要开发同款
匿名用户2024年07月31日
147阅读

技术信息

开源地址
https://modelscope.cn/models/iic/cv_bnext-small_image-classification_ImageNet-labels
授权协议
Apache License 2.0

作品详情

二值化网络介绍

神经网络二值化是模型量化的极限情况,将神经网络中原本 32 位浮点数参数量化至 1 位定点数。通常神经网络计算量集中在乘加操作,二值权重使该操作只靠位运算就能完成,极大加速了神经网络的推断过程,同时能够最大程度地减小模型的存储占用和模型的计算量,WRPN 指出在定制化的FPGA 和ASIC 上,BNN 对比全精度可获得1000倍的功耗节省。但二值化会不可避免地导致严重的信息损失,其量化函数不连续性也给深度网络的优化带来了困难。模型结构采用最新的BNext二值化网络结构,首次让二值网络在ILSVRC-2012 ImageNet 上取得超过80%的Top-1精度。

模型描述

采用最新提出的BNext-S结构。其结构如下图所示。
Bext模型结构

使用方式和范围

使用方式:

  • 支持CPU/GPU 推理,适合imageet-1k 支持的标签集上进行直接推理。

使用范围:

  • 本模型适用于部署在二值优化加速的硬件,适合2D image 输入的任务。

目标场景:

  • imageet-1k 支持的标签集上进行直接推理
  • 作为通用backboe 可以被集成到各种任务中作为特征提取器部署到端侧设备

如何使用

在ModelScope框架上,提供输入图片,即可通过简单的Pipelie调用来使用。

代码范例

from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks

img_path = 'https://modelscope.oss-c-beijig.aliyucs.com/test/images/bird.JPEG'
image_classificatio = pipelie(Tasks.image_classificatio, 
                                model='damo/cv_bext-small_image-classificatio_ImageNet-labels')
result = image_classificatio(img_path)
prit(result)

模型局限性以及可能的偏差

  • 模型在非高密集型操作(如PReLU等)时权重不会量化到1bit, 而是依旧使用fp32进行推理,考虑硬件设备的不同,可能带来一定性能差异,请用户自行评测后决定如何使用。

训练数据介绍

  • 使用标准 imageet-1k 数据集

预处理

测试时主要的预处理如下:

  • Resize:先将原始图片的短边缩放至256
  • Normalize:图像归一化,减均值除以标准差
  • CeterCrop:裁切为224x224

数据评估及结果

模型在ImageNet1K的测试集进行测试,结果如下:

Model top-1 acc #params
BNext-T 72.3 5.3M
BNext-S 76.1 11.1M
BNext-M 78.3 20.4M
BNext-L 80.5 47.6M

引用

@article{guo2022joi,
  title={Joi the High Accuracy Club o ImageNet with A Biary Neural Network Ticket},
  author={Guo, Niahui ad Bethge, Joseph ad Meiel, Christoph ad Yag, Haoji},
  joural={arXiv preprit arXiv:2211.12933},
  year={2022}
}

功能介绍

二值化网络介绍 神经网络二值化是模型量化的极限情况,将神经网络中原本 32 位浮点数参数量化至 1 位定点数。通常神经网络计算量集中在乘加操作,二值权重使该操作只靠位运算就能完成,极大加速了神经网络的

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论