Closed Guanchaofeng closed 1 year ago
谢谢你的关注,下面我逐条回复你的问题:
我们设置epochs的数量为30(具体的设置可以通过train_and_test.py中的training_epoch这一参数进行更改),我们在训练过程中使用了early stop机制,如果在dev集上的性能三次都没有提升,我们会提前结束训练。此外,我们每个epoch是按照train的时候800个task,eval的时候600个task设置的。
对于一个N-way,K-shot的task而言,这个task有N个不同的class,每一个class有K个样例,这样NxK个样例的集合称为这个task的support set,对于这个task的query set而言,每个class会抽取5个case(sample size为5)因此query set的大小为5xN
对于每一个epoch而言,我们要学习800个task,每一个task都是随机sample的(对应你的问题,数据的数量为:2x[5x5+5x5])
有几个疑惑没想明白: 1、采用多少个epochs,每个epoch又分task训练800次,验证600次吗? 2、5-way、5-shot中:每个epoch随机选取5 5个suppor和5个query(也就是总共30条数据)吗?还是每个task随机选取5 5个suppor和5个query吗(也就是总共800 30+600 30条 3、5-way、5-shot中两个batch是分别取两次随机数据吗(也就是总共60条数据)? 数据)?