fastNLP.core.tester¶
tester模块实现了 fastNLP 所需的Tester类,能在提供数据、模型以及metric的情况下进行性能测试。
这里Metric的映射规律是和 fastNLP.Trainer
中一致的,具体使用请参考 trainer 模块
的1.3部分。
Tester在验证进行之前会调用model.eval()提示当前进入了evaluation阶段,即会关闭nn.Dropout()等,在验证结束之后会调用model.train()恢复到训练状态。
-
class
fastNLP.core.tester.
Tester
(data, model, metrics, batch_size=16, num_workers=0, device=None, verbose=1, use_tqdm=True)[源代码]¶ 别名
fastNLP.Tester
fastNLP.core.tester.Tester
Tester是在提供数据,模型以及metric的情况下进行性能测试的类。需要传入模型,数据以及metric进行验证。
-
__init__
(data, model, metrics, batch_size=16, num_workers=0, device=None, verbose=1, use_tqdm=True)[源代码]¶ 参数: - data (DataSet,BatchIter) -- 需要测试的数据集
- model (torch.nn.Module) -- 使用的模型
- metrics (MetricBase,List[MetricBase]) -- 测试时使用的metrics
- batch_size (int) -- evaluation时使用的batch_size有多大。
- device (str,int,torch.device,list(int)) --
将模型load到哪个设备。默认为None,即Trainer不对模型 的计算位置进行管理。支持以下的输入:
- str: ['cpu', 'cuda', 'cuda:0', 'cuda:1', ...] 依次为'cpu'中, 可见的第一个GPU中,可见的第一个GPU中,可见的第二个GPU中;
- torch.device:将模型装载到torch.device上。
- int: 将使用device_id为该值的gpu进行训练
- list(int):如果多于1个device,将使用torch.nn.DataParallel包裹model, 并使用传入的device。
- None. 为None则不对模型进行任何处理,如果传入的model为torch.nn.DataParallel该值必须为None。
如果模型是通过predict()进行预测的话,那么将不能使用多卡(DataParallel)进行验证,只会使用第一张卡上的模型。
- verbose (int) -- 如果为0不输出任何信息; 如果为1,打印出验证结果。
- use_tqdm (bool) -- 是否使用tqdm来显示测试进度; 如果为False,则不会显示任何内容。
-