【飞桨论文复现赛-小样本学习】MatchingNet

本文是百度论文复现赛中《Matching Networks for One Shot Learning》的复现代码说明。基于paddlepaddle-gpu2.2.2和python3.7环境,在miniImageNet数据集上完成。复现的5-way 1-shot和5-shot准确率分别为48.3%、62.2%,超论文原结果。介绍了模型背景、数据集、运行步骤、对比试验及复现心得。

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

【飞桨论文复现赛-小样本学习】matchingnet - 创想鸟

一、前言

本项目为百度论文复现赛《Matching Networks for One Shot Learning》论文复现代码。

依赖环境:

paddlepaddle-gpu2.2.2python3.7

在miniImageNet数据集下训练和测试。

5-way Acc:

1-shot 5-shot

论文46.6%60.0%复现48.3%62.2%

二、模型背景及其介绍

参考论文:《Matching Networks for One Shot Learning》论文链接

在这项工作中,论文采用了基于深度神经特征的度量学习和利用外部记忆增强神经网络的最新进展。论文中框架学习了一个网络,它将一个小的带标签的support set和一个未带标签的示例映射到本身的标签上,从而避免了调整以适应new class类型的需要。然后我们定义了视觉(使用Omniglot, ImageNet)和语言任务的one-shot学习问题。与其他方法相比,论文算法在ImageNet上的one-shot精度从87.6%提高到93.2%,在Omniglot上从88.0%提高到93.8%。

模型结构如下:

【飞桨论文复现赛-小样本学习】MatchingNet - 创想鸟        

论文主要解决:基于小样本去学习归类(或别的任务),并且这个训练好的模型不需要经过调整,也可以用在对训练过程中未出现过的类别进行归类。

MatchingNet的训练对象如下公式:

【飞桨论文复现赛-小样本学习】MatchingNet - 创想鸟        

其中,一个 batch 有多个任务,一个任务有一个支持集合一个测试样本,一个支持集有多个样本对。模型应用到新的类别时不需要进行微调,是因为模型学到的是一种映射的方法,

参考论文博客

参考项目地址 复现github地址

三、数据集

2016年google DeepMind团队从Imagnet数据集中抽取的一小部分(大小约3GB)制作了Mini-Imagenet数据集,共有100个类别,每个类别都有600张图片,共60000张(都是.jpg结尾的文件)。

Mini-Imagenet数据集中还包含了train.csv、val.csv以及test.csv三个文件。

train.csv包含38400张图片,共64个类别。val.csv包含9600张图片,共16个类别。test.csv包含12000张图片,共20个类别。

每个csv文件之间的图像以及类别都是相互独立的,即共60000张图片,100个类。

四、运行

本项目5-way分类可设1-shot和5-shot。如果用5-shot可设置–n_shot 5,用1-shot可设置–n_shot 1。下面以5-shot为例。

解压miniImagenet数据集到./filelists目录下用于训练

In [1]

#加载miniImagenet数据集%cd /home/aistudio/work/Paddle-MatchingNet/filelists/!unzip -oq /home/aistudio/data/data138415/miniImagenet.zip

       

/home/aistudio/work/Paddle-MatchingNet/filelists

       

1、训练

训练的模型保存在./record目录下

训练的日志保存在./logs目录下

In [ ]

%cd /home/aistudio/work/Paddle-MatchingNet/!python3 train.py --n_shot 5

   

2、保存特征

将提取的特征保存在分类层之前,以提高测试速度。

加载./record目录下的模型进行特征保存

In [ ]

# 可加载预先训练好的模型文件到./record目录下%cd /home/aistudio/work/Paddle-MatchingNet/record/!unzip -oq /home/aistudio/data/data140016/checkpoint_matchingnet.zip

   In [ ]

%cd /home/aistudio/work/Paddle-MatchingNet/!python3 save_features.py --n_shot 5

   

3、测试

测试之前执行!python3 save_features.py预先提取特征

这里展示5-shot测试结果

In [15]

%cd /home/aistudio/work/Paddle-MatchingNet/!python3 test.py --n_shot 5

       

/home/aistudio/work/Paddle-MatchingNetW0418 20:57:16.315918  1841 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1W0418 20:57:16.321213  1841 device_context.cc:465] device: 0, cuDNN Version: 7.6./opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/framework/io.py:415: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working  if isinstance(obj, collections.Iterable) and not isinstance(obj, (600 Test Acc = 62.83% +- 0.73%

       

五、代码结构

├─data # 数据处理包├─filelists # 数据文件├─methods # 模型方法├─logs # 训练日志├─record # 训练保存文件 │  configs.py # 配置文件│  README.md # readme│  save_features.py # 保存特征│  train.py # 训练│  test.py # 测试

   

六、对比试验

原论文中没有对miniImageNet做数据增强,本次复现也默认未做数据增强。本项目对是否采用数据增强做了对比实验。 结果如下:

task 未扩增 扩增

1-shot48.3%45.3%5-shot62.2%60.1%

发现做数据增强的MatchingNet出现了精度下降的情况,可参考论文复现ProtoNet的分析,项目中有设置train_aug是否做数据增强,可自行测试。

七、复现心得

本项目参照小样本方向论文baseline给出的repo代码复现。复现过程中遇到一个比较大的问题是dataloader的设计编写,原repo设计dataloader采用了iter迭代方式,每次next的是一个sub_dataloader()。我用相同的方式使用paddle复现后,发现内存无限的增长。这个问题一直困扰,最后放弃了原repo使用sub_dataloader()的方式,采用普通的dataloader()的方法。下面给出部分实现SetDataset()的方案代码:

def __getitem__(self, i):        index = self.cl_list[i.item()]        sub_data = np.array(self.sub_meta[index])        ri = np.random.permutation(len(sub_data))        sf_sub_data = sub_data[ri][:self.batch_size]        imgs = []        targets = []        for ssd in sf_sub_data:            image_path = os.path.join(ssd)            img = Image.open(image_path).convert('RGB')            img = self.transform(img)            target = paddle.to_tensor(self.target_transform(index))            imgs.append(img)            targets.append(target)        imgs = paddle.stack(imgs, axis=0)        targets = paddle.stack(targets, axis=0)        return imgs, targets

   

以上就是【飞桨论文复现赛-小样本学习】MatchingNet的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 10:59:39
下一篇 2025年11月9日 11:00:55

相关推荐

  • 新手如何在币安通过现货交易赚取第一个利润

    新手如何在币安通过现货交易赚取第一个利润 现货交易是加密货币最基础的交易方式,适合新手入门。通过现货交易,用户可以直接买入和卖出币种,赚取价格波动差价。掌握基础技巧和风险控制,新手即可稳健获得第一个利润。 币安官方合作伙伴认证 · 一站式安全交易体验 官网直达: 安卓安装包下载: 一、现货交易基础概…

    2025年12月9日
    000
  • 欧易OKE官方APP下载指南 泰国新计划助力加密货币轻松兑换

    欧易服务全球用户,支持多语言和本地化支付方式,如银行卡、P2P交易等。平台不断创新,推出Web3钱苞、NFT市场等前沿产品,并支持多种赚币服务,如余币宝、staking等,帮助用户最大化资产收益。 本文将详细讲解如何下载欧易OKE官方APP,并结合近期泰国推出的新计划,说明加密货币兑换如何变得更加轻…

    2025年12月9日
    000
  • 2025年USDC稳定币市值变化及安全性分析

    截至2025年,usdc(usd coin)稳定币市值持续上涨,安全性因其合规与透明程度而逐步提升,但仍需警惕法币依赖与流动性集中带来的潜在风险。以下是针对usdc市值变化与安全性分析的详尽说明: Binance币安 官网直达: 安卓安装包下载: 欧易OKX ️ 官网直达: 安卓安装包下载: Huo…

    2025年12月9日
    000
  • 稳定币在熊市中的避险作用,新手必读

    稳定币在熊市中的避险作用,新手必读 在加密货币市场中,熊市往往意味着价格长期下跌、市场信心不足、投资者普遍恐慌。对于新手而言,如何在熊市中守住本金,比盲目追涨杀跌更为重要。稳定币(如 USDT、USDC、DAI)因其锚定美元价值,成为了熊市中最常见的避险工具。本文将系统解析稳定币的作用与注意事项。 …

    2025年12月9日
    000
  • 新手如何判断稳定币是否安全可靠

    新手如何判断稳定币是否安全可靠 稳定币因锚定法币而被广泛用于加密交易、跨链转账及 DeFi 投资,但并非所有稳定币都同样安全可靠。新手在选择和使用时,需要从合规性、储备机制、透明度和市场口碑等多维度进行判断,以降低风险和保障资金安全。 Binance币安 官网直达: 安卓安装包下载: 欧易OKX ️…

    2025年12月9日
    000
  • 什么是IguVerse(IGU币)?IGU代币经济学及价格预测

    目录 什么是 IguVerse,它是如何运作的?了解 AI、ML 和区块链在 IguVerse 中的作用IGU 代币:效用IGU 代币经济学IGU 代币统计IguVerse 的历史IguVerse 的功能IguVerse 游戏内市场什么是 IguVerse (IGU) 代币价值?IguVerse I…

    2025年12月9日
    000
  • OKB(OKB币)价格预测:2025、2026、2027-2030年

    目录  OKB是什么?OKB 币最新新闻和动态OKB币是什么?和OKX交易所有何关系?OKB币用途OKB(OKB)价格预测OKB价格预测:布林带和EMA对齐OKB价格预测:RSI和MACD确认OKB价格预测:智能货币概念与结构性突破OKB 价格目标 2025–2030年预测OKB 2026年价格预测…

    2025年12月9日 好文分享
    000
  • 2025 最新币安 App 下载教程(适用于安卓 + iOS)

    币安是全球领先的加密货币交易平台,提供现货、合约、理财等服务,支持多法币入金与nft交易,以高流动性、低手续费著称,适合各类用户。安卓用户需通过apk手动安装,ios用户需切换至海外app store下载,注册后建议完成kyc认证并启用双重验证保障安全。 币安(Binance)是全球领先的加密货币交…

    2025年12月9日
    100
  • 9月山寨币季如何布局? 注册欧易OKX平台下载App最新版

    2025年9月被视为新一轮山寨币季启动期,资金从比特币流出,CoinMarketCap指数显示市场正预热,建议通过欧易OKX或币安等平台布局以太坊、Solana等头部项目,关注GameFi、AI+区块链等热门赛道,分批建仓并设置止盈止损,利用质押增加收益,结合基本面与交易工具制定策略,把握行情机会。…

    2025年12月9日
    000
  • 以太坊ETH价格预测:渣打银行上调预期,分析师将目标价定为 8,500 美元

    目录 机构兴趣正在推动以太坊的需求比特币连接以太坊价格预测表:2025 年 8 月 14 日以太坊的价格发生了什么变化?为什么以太坊价格今天上涨?EMA 集群和肯特纳通道确认动量以太坊价格预测:短期展望(24 小时) 到 2025 年底,以太坊的价格可能会上涨至 8,500 美元。在主要牛市期间,E…

    2025年12月9日 好文分享
    000
  • 如何购买和投资比特币?

    购买比特币需选择合规交易所、匹配风险偏好策略并严格管理风险,通过注册认证、法币入金、下单购买等步骤完成交易,结合长期持有、现货交易、合约杠杆或质押生息策略,分散投资、安全存储、控制情绪,理性参与数字资产发展。 如何购买和投资比特币? 2025年8月,比特币价格突破12万美元,较年初涨幅超50%,吸引…

    2025年12月9日
    000
  • 韩国用的什么数字货币交易所?

    韩国主要使用Upbit和Bithumb等合规交易所,占据本土80%以上份额,支持韩元直接交易;同时Kaia等新兴平台依托社交生态和拟推出的韩元稳定币推动创新,形成头部主导与新兴势力并行的双轨格局。 韩国用的什么数字货币交易所? 2025年韩国数字货币交易市场呈现头部集中、新兴势力崛起的双轨格局。头部…

    2025年12月9日
    000
  • 韩国数字货币交易所有哪些

    韩国数字货币交易所呈现头部集中与新兴势力崛起并存格局,Upbit、Bithumb主导本土市场,Kaia等依托社交生态布局稳定币,政策推动下交易所向产业基础设施转型。 韩国数字货币交易所有哪些? 2025年韩国数字货币交易市场呈现头部集中、新兴势力崛起的双轨格局。主流平台以Upbit、Bithumb为…

    2025年12月9日
    000
  • 韩国币圈交易所有哪些

    Upbit与Bithumb主导韩国市场,合计份额达96%;Upbit以63%居首,Bithumb占33%,Coinone等其余平台份额较小,市场集中度高,投资需警惕波动风险。 韩国加密货币市场发展迅速,头部交易所占据主导地位。以下是当前韩国主要的币圈交易平台,结合权威数据与市场动态进行解析。 韩国主…

    2025年12月9日
    000
  • OKX CEO Star:X Layer将以”一链一币”模式驱动DeFi、支付与RWA发展

    8月14日,okx首席执行官star在x平台发布动态表示,x layer已完成重大升级,网络性能现已达到5,000 tps,gas费用趋近于零,同时宣布okb总供应量将永久锁定在2,100万枚。 他指出,X Layer将采用“一条链、一个代币”的全新架构,全力推动DeFi、全球支付以及现实世界资产(…

    2025年12月9日
    000
  • 什么是Superseed(SUPR币)?SUPR代币经济学及价格预测

    目录 什么是SUPR 代币?SUPR 与其他DeFi 代币有什么不同?Superseed 的核心特点是什么?1. CDP 借贷平台:2. Supercollateral:3. 偿还证明(Proof of Repayment):Superseed加密货币希望解决什么问题?1. 传统去中心化金融借贷中的…

    2025年12月9日
    000
  • 如何查看币种历史价格 币圈历史价格渠道行情网站推荐

    在币圈投资中,了解币种的历史价格可以帮助用户分析市场趋势、判断涨跌周期。查看历史价格不仅能辅助投资决策,也能了解市场波动规律,尤其是对比特币、以太坊以及热门山寨币。 建议新手用户在查看历史行情时,同时注册一个交易平台账户,获取更完整的数据参考。币安Binance、欧易OKX提供完整的历史价格查询和图…

    2025年12月9日 好文分享
    000
  • 什么是稳定币?它们如何保持价值稳定?

    稳定币是一类特别的加密货币,其设计目的是在数字货币的基础上保持价格相对稳定,通常与法币(如美元、欧元)或其他资产挂钩。它们为加密市场提供了一种低波动性资产,方便交易、结算和资产保值。 在新手投资者入门时,可以考虑通过币安(Binance)或欧易OKX等平台获取稳定币。注册并下载官方APP后,用户可以…

    2025年12月9日
    000
  • tokens是什么

    通证是区块链上的数字资产,可代表权利、价值或实物凭证,主要分为功能型、证券型、治理型和非同质化通证(NFT),每种通证在特定生态系统中承担不同角色,如访问服务、投资收益、参与治理或确权唯一资产。 Tokens,通常被称为通证,是在区块链上发行的一种数字资产。它不仅仅是数字货币,更可以代表一种权利、一…

    2025年12月9日
    000
  • 如何通过区块链浏览器查询币种交易历史?

    区块链浏览器是查看加密货币交易历史和链上数据的重要工具,它可以显示每笔交易的时间、数量、发送和接收地址等信息。通过浏览器,投资者可以验证交易记录、分析资金流向以及评估币种活跃度。 新手用户可以在币安(Binance)或欧易OKX获取币种的区块链浏览器入口及交易数据,方便快速查看链上信息。 币安注册链…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信