about maml.py
In maml.py line 105 and 106, the code is
fast_weights = collections.OrderedDict((name, param - args.inner_lr * grads)
for ((name, param), grads) in zip(fast_weights.items(), grads))
is there any wrong in it? I mean, should it be
fast_weights = collections.OrderedDict((name, param - args.inner_lr * grad)
for ((name, param), grad) in zip(fast_weights.items(), grads))
?
In maml.py line 105 and 106, the code is
fast_weights = collections.OrderedDict((name, param - args.inner_lr * grads) for ((name, param), grads) in zip(fast_weights.items(), grads))is there any wrong in it? I mean, should it be
fast_weights = collections.OrderedDict((name, param - args.inner_lr * grad) for ((name, param), grad) in zip(fast_weights.items(), grads))?
Yes, you are right. I will fix this bug.
非常感谢作者回复,BTW,我想再多问几个问题:
- 如果我要做测试的话,那么我是照样将测试集划分为支持集与查询集,然后用支持集进行梯度下降,然后在查询集上计算准确率么?
- 如果是这样的话,那么我的对比实验应该怎么做呢?针对其他非MAML-based model,我也只单独把测试集中的查询集拿出来,让这些模型在这个查询集上跑准确率这些么?
其实对比其他方法的时候,别的方法一般是使用预训练权重,那么我们理论上是所有有监督的数据集,随机选取N个类就可以开始训了,然后这样选取若干次,一直训练,得到的权重就是泛化性很强的权重。那这个时候我们只需要在我们特地的数据集上去做同样次数的训练,就能和其他方法比对了。
所以相当于就算是采用MAML的方法,也不能将测试集划分为支持集与查询集,而是直接用其他任务上训练好的权重来做测试对吧?
你可以分,只不过没必要,因为只要是你的测试集没在训练集里面出现过就行
好的好的,谢谢作者的回复~