发布时间:2025-07-25
点击次数: 本文是百度论文复现赛中《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 模型☜☜☜

本项目为百度论文复现赛《Matching Networks for One Shot Learning》论文复现代码。
依赖环境:
在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的训练对象如下公式:
其中,一个 batch 有多个任务,一个任务有一个支持集合一个测试样本,一个支持集有多个样本对。模型应用到新的类别时不需要进行微调,是因为模型学到的是一种映射的方法,
参考论文博客
参考项目地址 复现github地址
2016年google DeepMind团队从Imagnet数据集中抽取的一小部分(大小约3GB)制作了Mini-Imagenet数据集,共有100个类别,每个类别都有600张图片,共60000张(都是.jpg结尾的文件)。
Mini-Imagenet数据集中还包含了train.csv、val.csv以及test.csv三个文件。
简小派
简小派是一款AI原生求职工具,通过简历优化、岗位匹配、项目生成、模拟面试与智能投递,全链路提升求职成功率,帮助普通人更快拿到更好的 offer。
123
查看详情
每个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
训练的模型保存在./record目录下
训练的日志保存在./logs目录下
In [ ]%cd /home/aistudio/work/Paddle-MatchingNet/ !python3 train.py --n_shot 5
将提取的特征保存在分类层之前,以提高测试速度。
加载./record目录下的模型进行特征保存
In [ ]# 可加载预先训练好的模型文件到./record目录下%cd /home/aistudio/work/Paddle-MatchingNet/record/ !unzip -oq /home/aistudio/data/data140016/checkpoint_matchingnet.zipIn [ ]
%cd /home/aistudio/work/Paddle-MatchingNet/ !python3 s*e_features.py --n_shot 5
测试之前执行!python3 s*e_features.py预先提取特征
这里展示5-shot测试结果
In [15]%cd /home/aistudio/work/Paddle-MatchingNet/ !python3 test.py --n_shot 5
/home/aistudio/work/Paddle-MatchingNet W0418 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.1 W0418 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│ s*e_features.py # 保存特征│ train.py # 训练│ test.py # 测试
原论文中没有对miniImageNet做数据增强,本次复现也默认未做数据增强。本项目对是否采用数据增强做了对比实验。 结果如下:
| task | 未扩增 | 扩增 |
|---|---|---|
| 1-shot | 48.3% | 45.3% |
| 5-shot | 62.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的详细内容,更多请关注其它相关文章!
# git
# python
# 怎么做财务网站推广工作
# 河北网站优化推广有哪些
# 推广营销大的公司有哪些
# 大庆seo技巧方案
# 小红书营销推广哪家好
# 典雅近义词网站建设
# 深圳建设局网站查询
# SEO战略支援武汉
# 营销号视频多少秒合适推广
# 百度推广网站需要备案吗
# 提高到
# 加载
# 采用了
# 不需要
# 多个
# 都是
# 的是
# 目录下
# 一言
# 中文网
# fig
# udio
# igs
# csv文件
# 百度
# ai
相关栏目:
【
行业新闻62819 】
【
科技资讯67470 】
相关推荐:
OpenAI宣布在伦敦设立海外分部,要招揽“世界级人才”
明略科技发布免费开源TensorBoard.cpp,促进大型模型的预训练工作
周星驰支持的人工智能与 Web3 初创公司 Moonbox 完成 100 万美元融资
IBM CEO克里希纳:人工智能潜在创新无法被监管
人工智能赋能广西自然资源领域监测监管
6月14日《星空下的对话》 张朝阳陆川将畅聊人生、电影、心理学与AI
无人机自主巡检为高海拔输电线路运维添“新彩”
GPT-4不能在麻省理工学院获得计算机科学学位
国内首家,360智脑通过中国信通院可信AIGC大语言模型功能评估
WHEE网页地址入口
应对算力挑战,亚马逊云科技发力AI基础设施建设
日入400万,第一批AI骗子已上岗
30+大模型齐聚,大模型成世界人工智能大会“顶流”
联合国秘书长称支持建立全球人工智能监管机构
人工智能“Aria”现身 Opera浏览器100版本更新:新功能“标签岛”
VMS的应用:提升多品牌设备管理效能
黄仁勋:5年前,我们对AI抱有巨大期望
创新全场景清洁方案!海尔商用机器人首发上市
陈丹琦ACL学术报告来了!详解大模型「*」数据库7大方向3大挑战,3小时干货满满
行业首发「超级智绘」AI故事集,TCL实业推进AI技术应用
人工智能写作检测工具不靠谱,美国宪法竟被认为是机器人写的
普林斯顿大学推出 Infinigen AI 模型,生成真实自然环境 3D 场景
西班牙小鲜肉*视频在网上疯传,本人发文澄清:是AI换脸的假视频!
iPhone两秒出图,目前已知的最快移动端Stable Diffusion模型来了
奥比中光子公司和斯坦德机器人深度合作,共同推进新一代激光雷达的研发
美图秀秀发布七款 AI 工具:修图一样修视频、打造电影级上镜脸
加速电网转型升级推进新型电力系统建设
优地网络助力新媒体拥抱人工智能时代
酒店业将如何受益于人工智能的改变?
配 3D 机器人头像,谷歌展示全新安卓 LOGO
WHEE使用教程
AI大模型产品集体奔赴高考考场,教育赛道的讯飞星火能赢吗?
上海发布“元宇宙关键技术攻关行动方案”,加快 AIGC 等突破
你们的开机第一屏画面要变了!安卓机器人首次3D化
Xbox游戏工作室负责人:VR/AR领域的用户规模还不足够
鹅厂机器狗抢起真狗「饭碗」!会撒欢儿做游戏,遛人也贼6
Meta发布语音AI模型 Voicebox 助虚拟助手与NPC对话
人工智能大胆预测:银河系至少有2万个地球,36种外星文明
构建AI绘画网站的方法:使用API接口和调用步骤
RoboNeo安装教程
统信深度deepin成立 AI SIG 社区,共同提升 Linux 下 AI 体验
埃森哲俞毅:AI时代我们需要新的“摩尔定律”
英特尔张宇:边缘计算在整个AI生态系统中扮演重要角色
值得买科技入选“北京市通用人工智能产业创新伙伴计划”应用伙伴
人工智能产业协同创新中心:全产业链资源在这里汇聚
世界水下机器人大赛:9国青年携手逐梦深蓝
英伟达首席执行官黄仁勋:生成式 AI 时代「人类」会是新的编程语言
如何用户外电源给无人机实现持久续航
“无人驾驶船”将首次亮相世界人工智能大会,下半年或开进上海迪士尼
联想浏览器引入小乐 AI 助手,成功接入百度文心一言大模型,经过实测证实