论文:原来提取特征都是在空域上用CNN提取特征,本文模型额外使用了离散余弦变换提取频域信息再放入另一个CNN提取特征,两部分的特征放一起 送入分类器
论文源码:https://github.com/xiangyu8/PT-MAP-sf
数据
数据集准备
已CUB数据集为例,如果原来机器上有这个数据集就可以直接在项目根目录下新建Dataset/CUB
文件夹,然后将数据集复制过来。如果没有可以运行filelists/CUB/dowmload_CUB.sh
进行下载。此时的数据集为:
c生成json文件
根据README.md里的要求,运行filelists/CUB/make_json.py
生成train.json
, val.json
and novel.json
filelists/CUB/make_json.py
代码中需要将第11行注释之后再运行,可以得到train.json
, val.json
and novel.json
运行train_dct.py
修改参数
根据README.md里的要求,运行train_dct.py
需要传参数
python train_dct.py --dataset [DATASETNAME] --method [METHODNAME] --model WideResNet28_10 --train_aug --dct_status
train_dct.py
的main
调用了parse_args函数,记得加上filter_size
根据提示,我们设置成
日志准备
数据加载
Line612到Line628准备好了经过tramsform变幻的base_loader
base_loader_test
val_loader
; val_loader
是5way1shot的设置
训练开始
Line 663调用train_base函数开始训练模型
前向传播
Line69开始前向传播
input_dct_var.shape[13,24,56,56]
加载val_loader
刚才说val_loader
是5way1shot
的,EpisodicBatchSampler
会j将n_classes
个类打乱,选取前n_way
个