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

大杰吖_8200

大杰吖_8200

2025-07-28

924人浏览

原创

该复现项目针对《A Closer Look at Few-shot Classification》论文,基于paddlepaddle-gpu2.2.2和python3.7,在miniImageNet数据集上完成。复现的5-way 1-shot和5-shot准确率略超论文。介绍了论文的小样本分类研究、基准模型等,还说明了数据集、运行步骤及代码结构。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

【飞桨论文复现赛-小样本学习】fsl-baseline - php中文网

一、前言

本项目为百度论文复现赛《A Closer Look at Few-shot Classification》论文复现代码。

依赖环境:

  • paddlepaddle-gpu2.2.2
  • python3.7

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

5-way Acc:


1-shot 5-shot
论文 48.2% 66.4%
复现 48.3% 66.6%

二、模型背景及其介绍

参考论文:《A Closer Look at Few-shot Classification》论文链接

小样本分类旨在通过有限标记样例学习一个分类器来识别未知类,虽然近些年取得了一些重要的研究进展,但各方法网络结构、元学习算法的复杂性以及实现细节的差异为比较当前进展提出挑战。论文作者提出:

  1. 对几种代表性的小样本分类算法进行一致性比较分析,结果证明随着特征提取神经网络模型能力的提升,在给定领域差异的数据集上,各方法的性能差异显著缩小;

  2. 提出了一个基准模型,该模型在mini-ImageNet数据集和CUB数据集上的性能可以媲美几种SOTA方法;

  3. 提出了一种新的用于评估小样本分类算法跨领域泛化能力的实验设定,结果发现当特征提取神经网络能力较弱时,减少类内差异是提升模型性能的一个重要因素,当特征提取神经网络能力较强时,类内差异不再关键。

论文中提出的baseline模型遵循标准迁移学习的网络预训练以及微调。

  1. 训练阶段将图像输入到特征提取器中,再经过分类器进行分类。

  2. 微调阶段将训练好的模型参数固定在特征提取器中,然后重新训练一个分类器。

除Baseline模型外,论文还引入了Baseline模型的变体,Baseline++。Baseline++不同于前者的是在分类阶段采用了一个输入特征f(x)与权值矩阵的余弦相似度,然后根据这个相似度来进行softmax分类。 作者提出的Baseline和Baseline++模型如下图所示:

【飞桨论文复现赛-小样本学习】FSL-Baseline - php中文网        

参考项目地址

智能 Git 操作助手
智能 Git 操作助手

>-智能 Git 操作助手:安全提交、合并分支、检测冲突并提供处理建议、生成可视化报告。

下载

复现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-CLFS/filelists/
!unzip -oq /home/aistudio/data/data138415/miniImagenet.zip
       
/home/aistudio/work/Paddle-CLFS/filelists
       

1、训练

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

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

In [ ]
%cd /home/aistudio/work/Paddle-CLFS/
!python3 train.py --n_shot 5
   

2、保存特征

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

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

In [ ]
# 可加载预先训练好的模型文件到./record目录下%cd /home/aistudio/work/Paddle-CLFS/record/
!unzip -oq /home/aistudio/data/data140016/checkpoint_clfs.zip
   
In [ ]
%cd /home/aistudio/work/Paddle-CLFS/
!python3 save_features.py --n_shot 5
   

3、测试

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

这里展示5-shot测试结果

In [ ]
%cd /home/aistudio/work/Paddle-CLFS/
!python3 test.py --n_shot 5
   

五、代码结构

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

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

python git 百度 csv文件

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
数据分析的方法
数据分析的方法

数据分析的方法有:对比分析法,分组分析法,预测分析法,漏斗分析法,AB测试分析法,象限分析法,公式拆解法,可行域分析法,二八分析法,假设性分析法。php中文网为大家带来了数据分析的相关知识、以及相关文章等内容。

2023.07.04

1962

6

数据分析方法有哪几种
数据分析方法有哪几种

数据分析方法有:1、描述性统计分析;2、探索性数据分析;3、假设检验;4、回归分析;5、聚类分析。本专题为大家提供数据分析方法的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.07

2730

5

网站建设功能有哪些
网站建设功能有哪些

网站建设功能包括信息发布、内容管理、用户管理、搜索引擎优化、网站安全、数据分析、网站推广、响应式设计、社交媒体整合和电子商务等功能。这些功能可以帮助网站管理员创建一个具有吸引力、可用性和商业价值的网站,实现网站的目标。

2023.10.16

7370

14

数据分析网站推荐
数据分析网站推荐

数据分析网站推荐:1、商业数据分析论坛;2、人大经济论坛-计量经济学与统计区;3、中国统计论坛;4、数据挖掘学习交流论坛;5、数据分析论坛;6、网站数据分析;7、数据分析;8、数据挖掘研究院;9、S-PLUS、R统计论坛。想了解更多数据分析的相关内容,可以阅读本专题下面的文章。

2024.03.13

3124

8

Python 数据分析处理
Python 数据分析处理

本专题聚焦 Python 在数据分析领域的应用,系统讲解 Pandas、NumPy 的数据清洗、处理、分析与统计方法,并结合数据可视化、销售分析、科研数据处理等实战案例,帮助学员掌握使用 Python 高效进行数据分析与决策支持的核心技能。

2025.09.08

4785

12

Python 数据分析与可视化
Python 数据分析与可视化

本专题聚焦 Python 在数据分析与可视化领域的核心应用,系统讲解数据清洗、数据统计、Pandas 数据操作、NumPy 数组处理、Matplotlib 与 Seaborn 可视化技巧等内容。通过实战案例(如销售数据分析、用户行为可视化、趋势图与热力图绘制),帮助学习者掌握 从原始数据到可视化报告的完整分析能力。

2025.10.14

7372

24

Python 数据分析与可视化合集
Python 数据分析与可视化合集

聚焦 Python 在数据分析领域的核心应用,讲解 NumPy 数组运算、Pandas 数据清洗与聚合统计、缺失值与异常值处理、数据透视表生成,以及使用 Matplotlib、Seaborn、Pyecharts 制作折线图、柱状图、热力图、地图等多种可视化图表,适合数据分析师和运营人员快速掌握用 Python 从原始数据中挖掘洞察的能力。

2026.04.08

376

25

Python数据分析与Pandas高级实战
Python数据分析与Pandas高级实战

本专题围绕 Python 数据分析展开,系统讲解 Pandas 的高级用法,包括数据清洗、透视表、时间序列分析以及多表合并与分组操作。通过实战案例,帮助开发者掌握高效处理与分析数据的方法,提高数据处理效率与分析能力。

2026.04.13

751

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习