FRN——小样本学习SOTA模型

本文介绍CVPR2021论文提出的小样本学习模型FRN,其将分类问题归为特征重构问题,以闭合解形式从支持样本回归查询样本特征,性能与效率更优。文中展示了基于PaddlePaddle复现的FRN在mini-ImageNet上的精度,还介绍了数据集、环境依赖、快速开始步骤、代码结构及模型信息等内容。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

frn——小样本学习sota模型 - 创想鸟

FRN——小样本学习SOTA模型

一、论文概述

论文Few-Shot Classification with Feature Map Reconstruction Networks是顶会CVPR2021上发表的一种小样本学习经典方法。该方法在小样本学习的benchmark上依然具有最佳的性能指标,是该领域的重要方法。

FRN将小样本分类问题归结为潜在空间中的特征重构问题。作者认为,通过支持样本重构查询样本特征的能力,决定了查询样本的所属类别。作者在小样本学习中引入了一种新的机制,以闭合解的形式从支持样本特征直接向查询样本特征做回归,无需引入新的模块或者大规模的训练参数。上述方法得到的模型(FRN),相比先前的其他方法,无论在计算效率上还是性能表现上都更有优势。FRN在四个细粒度数据集上展现出实质性提升。在通用的粗粒度数据集mini-ImageNet和tiered-ImageNet上,也达到了SOTA指标。

下图展示了FRN的基本工作流程。

FRN——小样本学习SOTA模型 - 创想鸟        

二、复现精度

基于paddlepaddle深度学习框架,对文献算法进行复现后,本项目在mini-ImageNet上达到的测试精度,如下表所示。

task 本项目精度 参考文献精度

5-Way 1-Shot
66.45+-0.195-Way 5-Shot
82.83+-0.13

模型训练包括了两个过程,首先是模型预训练,按照典型分类网络的训练过程,将整个训练集送入backbone进行训练;然后是微调过程,按照episode training的训练范式,配置为20-Way 5-Shot方式进行微调训练。这两个训练过程的训练超参数设置如下:

(1)预训练过程

超参数名 设置值

lr0.1gamma0.1epoch350milestones200 300batch_size512

(2)微调训练过程

超参数名 设置值

lr1e-3gamma0.1epoch150train_n_episode1000milestones70 120train_n_way20n_shot5

三、数据集

miniImageNet数据集节选自ImageNet数据集。 DeepMind团队首次将miniImageNet数据集用于小样本学习研究,从此miniImageNet成为了元学习和小样本领域的基准数据集。 关于该数据集的介绍可以参考https://blog.csdn.net/wangkaidehao/article/details/105531837

miniImageNet是由Oriol Vinyals等在Matching Networks 中首次提出的,该文献是小样本分类任务的开山制作,也是本次复现论文关于该数据集的参考文献。在Matching Networks中, 作者提出对ImageNet中的类别和样本进行抽取(参见其Appendix B),形成了一个数据子集,将其命名为miniImageNet。 划分方法,作者仅给出了一个文本文件进行说明。 Vinyals在文中指明了miniImageNet图片尺寸为84×84。因此,后续小样本领域的研究者,均是基于原始图像,在代码中进行预处理, 将图像缩放到84×84的规格。

至于如何缩放到84×84,本领域研究者各有各的方法,通常与研究者的个人理解相关,但一般对实验结果影响不大。本次文献论文原文,未能给出 miniImageNet的具体实现方法,本项目即参考领域内较为通用的预处理方法进行处理。

数据集大小:miniImageNet包含100类共60000张彩色图片,其中每类有600个样本。 mini-imagenet一共有2.86GB数据格式:

|- miniImagenet|  |- images/|  |  |- n0153282900000005.jpg |  |  |- n0153282900000006.jpg|  |  |- …|  |- train.csv|  |- test.csv|  |- val.csv

       

数据集链接:miniImagenet

四、环境依赖

硬件:

x86 cpuNVIDIA GPU

框架:

PaddlePaddle = 2.4

其他依赖项:

numpy==1.19.3tqdm==4.59.0Pillow==8.3.1

五、快速开始

1、解压数据集和源代码:

!unzip -n -d ./data/ ./data/data105646/mini-imagenet-sxc.zip

In [ ]

%cd /home/aistudio/!unzip -n -d ./data/ ./data/data105646/mini-imagenet-sxc.zip

   In [ ]

%cd /home/aistudio/work/!unzip -o frn.zip

   In [ ]

# 生成json文件!cp write_miniImagenet_filelist.py /home/aistudio/data/mini-imagenet-sxc/%cd /home/aistudio/data/mini-imagenet-sxc/!python write_miniImagenet_filelist.py

   

2、执行以下命令启动预训练:

python pretrain.py --dataset mini_imagenet --data_path /home/aistudio/data/mini-imagenet-sxc --method stl_frn --lr 1e-1 --gamma 1e-1 --epoch 350 --milestones 200 300 --batch_size 512 --val_n_episode 600 --image_size 84 --model ResNet12 --n_shot 1 --n_query 15 --gpu

       

模型开始训练,运行完毕后,训练log和模型参数保存在./checkpoints/mini_imagenet/ResNet12_stl_frn_pretrain/目录下,分别是:

best_model.pdparams  # 最优模型参数文件output.log  # 训练LOG信息

       

训练完成后,可将上述文件手动保存到其他目录下,避免被后续训练操作覆盖。

In [ ]

%cd /home/aistudio/work!python pretrain.py --dataset mini_imagenet --data_path /home/aistudio/data/mini-imagenet-sxc --method stl_frn --lr 1e-1 --gamma 1e-1 --epoch 350 --milestones 200 300 --batch_size 512 --val_n_episode 600 --image_size 84 --model ResNet12 --n_shot 1 --n_query 15   --gpu

   

3、执行以下命令启动微调训练:

python meta_train.py --dataset mini_imagenet --data_path /home/aistudio/data/mini-imagenet-sxc --method meta_frn --lr 1e-3 --gamma 1e-1 --epoch 150 --train_n_episode 1000 --val_n_episode 600 --milestones 70 120 --image_size 84 --model ResNet12 --train_n_way 20 --val_n_way 5 --n_shot 5 --n_query 15 --gpu --pretrain_path ./checkpoints/mini_imagenet/ResNet12_stl_frn_pretrain/best_model.pdparams

       

模型开始训练,运行完毕后,训练log和模型参数保存在./checkpoints/mini_imagenet/ResNet12_meta_frn_20way_5shot_metatrain/目录下,分别是:

best_model.pdparams  # 最优模型参数文件output.log  # 训练LOG信息

       

训练完成后,可将上述文件手动保存到其他目录下,避免被后续训练操作覆盖。

In [ ]

%cd /home/aistudio/work!python meta_train.py --dataset mini_imagenet --data_path /home/aistudio/data/mini-imagenet-sxc --method meta_frn --lr 1e-3 --gamma 1e-1 --epoch 150 --train_n_episode 1000 --val_n_episode 600 --milestones 70 120 --image_size 84 --model ResNet12 --train_n_way 20 --val_n_way 5 --n_shot 5 --n_query 15 --gpu --pretrain_path ./checkpoints/mini_imagenet/ResNet12_stl_frn_pretrain/best_model.pdparams

   

4、执行以下命令进行评估

python test.py --dataset mini_imagenet --data_path /home/aistudio/data/mini-imagenet-sxc --model ResNet12 --method meta_frn --image_size 84 --gpu --n_shot 1 --model_path ./checkpoints/mini_imagenet/ResNet12_meta_frn_20way_5shot_metatrain/best_model.pdparams --test_task_nums 1 --test_n_episode 600

       

用于评估模型在小样本任务下的精度。

In [ ]

# 5-Way 1-Shot评估%cd /home/aistudio/work!python test.py --dataset mini_imagenet --data_path /home/aistudio/data/mini-imagenet-sxc --model ResNet12 --method meta_frn --image_size 84 --gpu --n_shot 1 --model_path ./checkpoints/mini_imagenet/ResNet12_meta_frn_20way_5shot_metatrain/best_model.pdparams --test_task_nums 1 --test_n_episode 600

   In [ ]

# 5-Way 5-Shot评估%cd /home/aistudio/work!python test.py --dataset mini_imagenet --data_path /home/aistudio/data/mini-imagenet-sxc --model ResNet12 --method meta_frn --image_size 84 --gpu --n_shot 5 --model_path ./checkpoints/mini_imagenet/ResNet12_meta_frn_20way_5shot_metatrain/best_model.pdparams --test_task_nums 1 --test_n_episode 600

   

六、代码结构与详细说明

6.1 代码结构

├── data                               # 数据处理相关│   ├── datamgr.py                       # data manager模块│   ├── dataset.py                       # data set模块├── methods                             # 模型相关│   ├── FRN.py                          # FRN核心算法├── network                             # backbone│   ├── conv.py                         # Conv-4和Conv-6代码实现│   ├── resnet.py                        # ResNet-12代码实现├── scripts                             # 运行工程脚本│   ├── mini_imagenet                     │   │   ├── run_frn                     │   │   │   ├── run_frn_metatrain.sh         # 运行微调训练│   │   │   ├── run_frn_pretrain.sh          # 运行预训练│   │   │   ├── run_frn_test.sh            # 运行测试├── meta_train.py                         # 微调训练代码├── pretrain.py                          # 预训练代码├── test.py                             # 测试代码├── utils.py                            # 公共调用函数├── wirite_miniImagenet_filelist.py             # 生成mini-ImageNet数据json文件

   

6.2 参数说明

可以在 pretrain.py 中设置训练与评估相关参数,具体如下:

参数 默认值 说明

—-batch_size128batch size–lr0.05初始学习率–wd5e-4weight decay超参–gamma0.1lr_scheduler衰减系数–milestones80, 120达到相应epoch后,lr_scheduler开始衰减–epoch150遍历数据集的迭代轮数–gpuTrue是否使用GPU进行训练–datasetmini_imagenet指定训练数据集–data_path”指定数据集的路径–modelResNet-12指定采用的backbone–valmeta指定验证方式–train_n_way20小样本训练类别数–val_n_episode600验证时测试多少个episode–val_n_way5小样本验证类别数–n_shot1给定支持样本的个数–n_query15指定查询样本的个数–num_classes64指定base set类别总数–save_freq50指定每隔多少个epoch保存一次模型参数–seed0指定随机数种子–resume”指定恢复训练时加载的中间参数文件路径

6.3 训练流程

可参考快速开始章节中的描述

训练输出

执行训练开始后,将得到类似如下的输出。每一轮epoch训练将会打印当前training loss、training acc、val loss、val acc以及训练kl散度。

Epoch 0 | Batch 0/150 | Loss 4.158544best model! save...val loss is 0.00, val acc is 37.46model best acc is 37.46, best acc epoch is 0This epoch use 7.61 minutestrain loss is 3.72, train acc is 10.84Epoch 1 | Batch 0/150 | Loss 3.052964val loss is 0.00, val acc is 37.46model best acc is 37.46, best acc epoch is 0This epoch use 3.73 minutestrain loss is 2.96, train acc is 25.28Epoch 2 | Batch 0/150 | Loss 2.588413val loss is 0.00, val acc is 37.46model best acc is 37.46, best acc epoch is 0This epoch use 3.71 minutestrain loss is 2.59, train acc is 33.27...

   

6.4 测试流程

可参考快速开始章节中的描述

此时的输出为:


   

八、模型信息

训练完成后,模型和相关LOG保存在./results/5w1s和./results/5w5s目录下。

训练和测试日志保存在results目录下。

信息 说明

发布者hrdwsong时间2023.03框架版本Paddle 2.4应用场景小样本学习支持硬件GPU、CPUAistudio地址https://aistudio.baidu.com/aistudio/projectdetail/5723600?contributionType=1&sUid=527829&shared=1&ts=1678943299939

以上就是FRN——小样本学习SOTA模型的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/60126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 17:56:49
下一篇 2025年11月10日 18:08:07

相关推荐

  • 虚拟货币主流币交易所前十排行榜

    在数字货币飞速发展的今天,选择一个安全、稳定且功能齐全的交易平台至关重要。主流的虚拟货币交易所不仅提供了广泛的交易对,还不断优化用户体验,引进创新功能,以满足日益增长的全球用户需求。这些平台成为了连接投资者与数字资产世界的桥梁,它们在资产安全、交易效率、用户服务等方面展开激烈竞争,共同推动着虚拟货币…

    2025年12月10日 好文分享
    000
  • 2025年哪些AI代币值得关注?

    2025年AI加密市场迎来爆发,总市值达295亿美元,AI代币在去中心化应用中占比18.6%,Bittensor、ASI、NEAR、Render等项目推动基础设施、公链性能与算力网络发展,AI代理预计执行90%链上交易,但需警惕泡沫风险、代理错误及区块链最终性矛盾。 随着人工智能与区块链技术的深度融…

    2025年12月10日
    000
  • ChainOpera AI (COAI) 热度为何飙升?

    近期,加密货币市场的一个现象级项目引起了广泛关注。chainopera ai(代币coai)在短短几周内,其价格从不足0.4美元飙升至超过5.66美元,周涨幅高达1,795%,市值一度突破11亿美元。这款基于bnb智能链的ai代币,成功地将人工智能叙事与病毒式传播相结合,成为了2025年第四季度加密…

    2025年12月10日
    000
  • Peter Brandt分析:比特币(BTC)若未在关键时点见顶,将迎来“戏剧性”价格飙升

    目录 周日是比特币周期的关键日比特币四年周期辩论持续比特币的购买方式有几种?1、交易所购买2、ATM购买3、P2P购买比特币怎么买? 资深交易员Peter Brandt表示,只要比特币在未来几天内不见顶,就有望迎来前所未有的价格发现。 Brandt周三告诉Cointelegraph:”现…

    2025年12月10日 好文分享
    000
  • Pendle($PENDLE)是什么?PENDLE价格分析及2025年预测

    目录 Pendle的概念和特点1.基本结构2. 使用示例3. 多链支持和流动性基础设施4. 治理与代币经济5. 区别点PENDLE 的当前价格和近期趋势2025年市场预测1.保守情景(维持5-6美元)2. 中性情景(上涨 6-8 美元)3. 激进情景(突破 10 美元)PENDLE生长因子1. 扩大…

    2025年12月10日
    000
  • BNB币2025年价格预测:突破历史新高后,BNB会达到$2,000吗?

    目录 BNB Chain 及其原生代币BNB 的代币经济学是什么?BNB 的主要用途包括:是什么推动BNB 在2025 年10 月创下历史新高?1. 链上活动激增,推动BNB 代币销毁创纪录2. 机构采用将BNB 确立为企业储备资产3. BNB Chain 生态系统增长巩固长期基础4. 市场动能和恢…

    2025年12月10日 好文分享
    000
  • 喜讯:稳定币市场飙升至3000亿美元,助力加密市场大涨

    据业内观察人士向Cointelegraph透露,稳定币总供应量突破3000亿美元大关,这一历史性里程碑或将成为点燃加密市场新一轮上涨的“火箭燃料”,同时也反映出加密资产与全球金融系统的深度融合趋势。 多位市场分析人士认为,这3000亿美元的稳定币规模不仅仅是数字上的突破,更意味着越来越多的传统资金正…

    2025年12月10日
    000
  • 10月飙升1000%的ChainOpera AI (COAI)币是什么?代币用途介绍

    目录 ChainOpera AI (COAI) 是什么?如何运作?ChainOpera AI (COAI) 为何在十月初飙升 1,000%?1. 新的上线和针对性奖励引入了流动性2. 关于可衡量贡献的清晰叙事3. 在 TGE 和未来解锁前的定位COAI 代币的用途是什么?COAI 代币经济学与代币分…

    2025年12月10日 好文分享
    000
  • 预警:"掠夺性"交易者挤压比特币多头头寸,BTC恐面临跌至11.4万美元风险

    目录 核心要点:BTC在触及历史高点后进入盘整阶段11.4万美元支撑位再度引发市场关注 比特币价格走势分析显示,在从前期高点回落4%之后,市场正聚焦新的底部目标——11.4万美元,同时交易流动性逐步恢复。 核心要点: BTC价格在数小时内下挫超4%,随后维持低位震荡。市场流动性回暖,预示短期内波动可…

    2025年12月10日 好文分享
    100
  • 什么是DoubleZero (2Z)币?2Z工作原理、代币经济学及价格预测

    目录 关键要点什么是 DoubleZero?DoubleZero创始人DoubleZero 的工作原理带宽贡献网络集成智能合约 主要特点专用带宽边缘过滤优化路线激励模型DoubleZero 使用案例2Z代币代币经济学DoubleZero价格预测DoubleZero 2025 年价格预测DoubleZ…

    2025年12月10日
    000
  • 什么是 Fusionist (ACE)币?ACE代币经济学、未来发展及价格预测

    目录 什么是Fusionist (ACE)?Fusionist 如何运作?Fusionist 有何独特之处?什么是 ACE 代币?ACE 代币经济学Fusionist投资潜力Fusionist价格预测Fusionist 2025 年价格预测Fusionist 2026-2031 年价格预测Fusio…

    2025年12月10日
    000
  • 什么是 Polymesh (POLYX)币?POLYX工作原理、生态系统及价格预测

    目录 介绍什么是 Polymesh?谁是 Polymesh 的创始人?Polymesh 如何工作?  固定多边形网格Polymesh(POLYX)是用来做什么的?POLYX 有什么用途?Polymesh 的费用结构Polymesh 有何独特之处? 治理 身份 遵守保密性沉降POLYX 是什么?  治…

    2025年12月10日
    000
  • 狗狗币合约的只减仓模式如何使用_狗狗币合约的只减仓模式使用指南

    狗狗币合约交易中的“只减仓”模式是一个核心的风险控制功能。它能确保您的订单仅用于减少或关闭现有仓位,有效避免因操作失误而意外增加反向持仓的风险,是交易者的重要工具。 了解只减仓模式的核心作用 1、只减仓是一个特殊的订单指令,其首要目标是帮助交易者进行精确的仓位管理,而非开立新仓位,这对于执行复杂的交…

    2025年12月10日
    000
  • 加密货币的起源

    探索加密货币的起源,我们踏上了一段引人入胜的旅程,深入了解这种颠覆性技术如何从理论构想一步步发展成为全球金融格局中不可或缺的一部分。这不仅仅是关于比特币的故事,更是一个关于匿名理想主义者、密码学突破以及对传统中心化金融系统深刻质疑的故事。理解加密货币的诞生,就如同拨开历史的迷雾,去洞悉一个全新的数字…

    好文分享 2025年12月10日
    000
  • 如何查询虚拟币转账记录?全链路操作指南

    在虚拟货币交易中,查询转账记录是保证资金安全与核对账务的重要环节。本文将为新手用户提供一份全链路操作指南,涵盖从交易所记录到区块链浏览器查询的完整流程。 一、交易所内查看转账记录 绝大多数交易所都会在账户内提供充值/提现记录功能: 登录交易所账户,如币安、火币或欧易OKX。进入“资产”页面,选择“历…

    2025年12月10日
    000
  • 加密货币与DeFi

    在数字经济的浪潮中,加密货币与去中心化金融(defi)作为两大核心支柱,正以前所未有的速度重塑全球金融格局。它们不仅仅是技术概念,更是对传统金融体系的一次深刻反思与颠覆性创新。加密货币作为区块链技术最早、最广为人知的应用,提供了一种无需中心化机构信任背书的数字价值存储和传输方式,其背后蕴含的是数学、…

    好文分享 2025年12月10日
    000
  • 加密货币投资必读

    在数字时代浪潮中,加密货币以其独特的魅力吸引着全球投资者的目光。它不仅仅是一种新兴的金融资产,更代表着底层技术革新——区块链的巨大潜力。然而,如同任何一种投资形式,加密货币市场也充满了机遇与风险。对于希望踏入这片未知领域的投资者而言,掌握必要的知识与策略,规避潜在陷阱,显得尤为重要。本文将深入探讨加…

    好文分享 2025年12月10日
    000
  • 加密货币的种类

    加密货币的世界充满了令人眼花缭乱的数字资产,每一种都承载着独特的技术、经济愿景和社区支持。对于初入此领域的人来说,理解这些多样的加密货币,就如同打开了一个全新的金融维度。它们不仅仅是代码和数字,更是未来金融体系的潜在基石。本文将深入探讨加密货币的各种类型,帮助读者辨别它们之间的差异,了解其核心功能,…

    好文分享 2025年12月10日
    000
  • 从币安人生到生态扩张,CZ在AMA中透露了哪些信息?

    10 月 8 日,cz 罕见亮相 trust wallet 举办的「bnb super cycle」ama,与 aster、four.meme、pancake 等 bnb 核心项目同台。 CZ 在 AMA 中正面回应了近期 BNB Chain 生态的热门话题,也分享了他对加密行业未来趋势的深层判断与…

    2025年12月10日
    000
  • Hyperliquid陷“四面楚歌”:王座失守与绝地反击

    目录 凛冬已至:失守的王座与“数据黑洞”组合拳反击:文化、基建与生态的三板斧护城河之辩:喧嚣过后,Hyperliquid还剩下什么? hyperliquid作为去中心化衍生品交易所近期面临严峻挑战,市场份额被竞争对手aster大幅挤压,同时生态内安全事件频发,稳定币计划尚未成熟。面对竞争,hyper…

    2025年12月10日 好文分享
    000

发表回复

登录后才能评论
关注微信