我在更高的图书馆里读了这个例子,但在我看来,他们似乎忘了用meta_batch_size来除法,他们有:
qry_loss.backward()他们应该去的地方
meta_batch_size = qry_loss.size(0)
(qry_loss/meta_batch_size).backward()这是对的吗?他们应该被meta_batch_size除法吗
参考资料:
使用omniglot:https://github.com/facebookresearch/higher/blob/master/examples/maml-omniglot.py
的
如果没有填充梯度字段,请参见以下代码:https://github.com/facebookresearch/higher/issues/129
发布于 2021-03-12 23:14:02
如果您选择正确的步长,它们是“等效的”。
第一条有以下更新规则:
w := w - eta1 (E[l] +- std[l]/sqr{B})第二名:
w := w - eta2 (B E[l] +- sqrt{B} std[l])如果eta2 = eta1/B的话,它们是一样的。假设您可以或多或少地用平均+- std替换梯度(不完全是,但没关系,如果它们的分布大致相同,也就足够了)。
https://stackoverflow.com/questions/66606540
复制相似问题