megvii-research / DPGN

[CVPR 2020] DPGN: Distribution Propagation Graph Network for Few-shot Learning.
MIT License
181 stars 38 forks source link

关于边初始化的疑问 #7

Closed lsgn12138 closed 4 years ago

lsgn12138 commented 4 years ago

您好!DPGN是一个十分优秀的工作。但是我在阅读您的代码的时候遇到了一些问题,是关于输入GNN的初始化边,edge_feature_gd和edge_feature_gp这两个矩阵。对于5way-1shot,1query来说,它是一个10×10的矩阵,在这个矩阵的右下角的5×5的矩阵中,您将其初始化为5×5的单位阵。但是这样是合理的吗?这样子是否引入了先验知识:任意两个询问集的样本均不同类呢?另外我使用您的代码,batchsize为25,backbone使用convnet,5way-1shot最后的测试结果为64.42±0.52,最后测试出来的结果和您论文中的结果差距(66.01±0.36)有点大,我该如何修改训练方式才能达到您展示的效果呢?

zilunzhang commented 4 years ago

您好!DPGN是一个十分优秀的工作。但是我在阅读您的代码的时候遇到了一些问题,是关于输入GNN的初始化边,edge_feature_gd和edge_feature_gp这两个矩阵。对于5way-1shot,1query来说,它是一个10×10的矩阵,在这个矩阵的右下角的5×5的矩阵中,您将其初始化为5×5的单位阵。但是这样是合理的吗?这样子是否引入了先验知识:任意两个询问集的样本均不同类呢?另外我使用您的代码,batchsize为25,backbone使用convnet,5way-1shot最后的测试结果为64.42±0.52,最后测试出来的结果和您论文中的结果差距(66.01±0.36)有点大,我该如何修改训练方式才能达到您展示的效果呢?

您好,

  1. 为了公平比较,我们的初始化设置参考并延用了其他两个few-shot learning的GNN模型设置 (TPN和EGNN)。欢迎您尝试不同的初始化方式(可能需要同时修改下dataloader.py)。只要query set中的每个instance是在一个均匀分布的数据集上抽取得到的 (每个class的cardinality一样,每个class被抽到的概率也一样),我们认为差别不会很大。

  2. 5way-1shot,convnet,mini-imagenet的config file已经上传,请试一下。

在使用DPGN的过程中如果还有其他问题请继续联系我们。

DPGN Team