库名称: timm
许可证: mit
标签:
LSNet:见大聚焦小
论文: https://arxiv.org/abs/2503.23135
代码: https://github.com/jameslahm/lsnet
使用方法
import timm
import torch
from PIL import Image
import requests
from timm.data import resolve_data_config, create_transform
model = timm.create_model(
'hf_hub:jameslahm/lsnet_b',
pretrained=True
)
model.eval()
url = 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
img = Image.open(requests.get(url, stream=True).raw)
config = resolve_data_config({}, model=model)
transform = create_transform(**config)
input_tensor = transform(img).unsqueeze(0)
with torch.no_grad():
output = model(input_tensor)
probabilities = torch.nn.functional.softmax(output[0], dim=0)
top5_prob, top5_catid = torch.topk(probabilities, 5)
引用
如果我们的代码或模型对你的工作有帮助,请引用我们的论文:
@misc{wang2025lsnetlargefocussmall,
title={LSNet: See Large, Focus Small},
author={Ao Wang and Hui Chen and Zijia Lin and Jungong Han and Guiguang Ding},
year={2025},
eprint={2503.23135},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2503.23135},
}
LSNet的官方PyTorch实现。CVPR 2025。
模型在ImageNet-1K上训练,吞吐量在Nvidia RTX3090上测试。
LSNet:见大聚焦小。
作者:王傲、陈辉、林子佳、韩军功、丁贵广

我们提出了LSNet,一个受人类视觉系统动态异尺度能力(即“见大聚焦小”)启发的新型轻量级视觉模型家族。LSNet在各种视觉任务中实现了最先进的性能和效率平衡。
摘要
视觉网络设计,包括卷积神经网络和视觉Transformer,极大地推动了计算机视觉领域的发展。然而,其复杂的计算给实际部署带来了挑战,特别是在实时应用中。为了解决这个问题,研究人员探索了各种轻量级和高效的网络设计。然而,现有的轻量级模型主要利用自注意力机制和卷积进行令牌混合。这种依赖在轻量级网络的感知和聚合过程中带来了有效性和效率上的限制,阻碍了在有限计算预算下性能与效率的平衡。本文中,我们从高效人类视觉系统固有的动态异尺度视觉能力中获得灵感,提出了“见大聚焦小”的轻量级视觉网络设计策略。我们引入了LS(大-小)卷积,它结合了大核感知和小核聚合。它可以高效地捕捉广泛的感知信息,并实现动态复杂视觉表示的精确特征聚合,从而实现对视觉信息的熟练处理。基于LS卷积,我们提出了LSNet,一个新的轻量级模型家族。大量实验表明,LSNet在各种视觉任务中实现了优于现有轻量级网络的性能和效率。
ImageNet-1K上的分类
模型
- * 表示使用蒸馏的结果。
- 吞吐量在Nvidia RTX3090上使用speed.py测试。
模型 |
Top-1 |
参数量 |
FLOPs |
吞吐量 |
检查点 |
日志 |
LSNet-T |
74.9 / 76.1* |
11.4M |
0.3G |
14708 |
T / T* |
T / T* |
LSNet-S |
77.8 / 79.0* |
16.1M |
0.5G |
9023 |
S / S* |
S / S* |
LSNet-B |
80.3 / 81.6* |
23.2M |
1.3G |
3996 |
B / B* |
B / B* |
ImageNet
准备工作
推荐使用conda
虚拟环境。
conda create -n lsnet python=3.8
pip install -r requirements.txt
数据准备
从http://image-net.org/下载并解压ImageNet的训练和验证图像。训练和验证数据应分别位于train
文件夹和val
文件夹中:
|-- /path/to/imagenet/
|-- train
|-- val
训练
在8-GPU机器上训练LSNet-T:
python -m torch.distributed.launch --nproc_per_node=8 --master_port 12345 --use_env main.py --model lsnet_t --data-path ~/imagenet --dist-eval
测试
python main.py --eval --model lsnet_t --resume ./pretrain/lsnet_t.pth --data-path ~/imagenet
模型也可以从🤗自动下载,如下所示。
import timm
model = timm.create_model(
f'hf_hub:jameslahm/lsnet_{t/t_distill/s/s_distill/b/b_distill}',
pretrained=True
)
下游任务
目标检测和实例分割
语义分割
鲁棒性评估
致谢
分类(ImageNet)代码库部分基于EfficientViT、LeViT、PoolFormer和EfficientFormer构建。
检测和分割流程来自MMCV(MMDetection和MMSegmentation)。
感谢这些优秀的实现!