def test_model(configs):
    """测试模型
    """
    path_test = configs['data_params']['path_test'] if 'path_test' in configs[
        'data_params'] else None
    # init model
    encoder, ptr_model, decoder = load_model(configs)

    # init test data
    data_test = load_data(path_test)
    data_iter_test = init_test_data(configs)

    # init infer
    if 'path_test_result' not in configs['data_params'] or \
            not configs['data_params']['path_test_result']:
        path_result = configs['data_params']['path_test'] + '.result'
    else:
        path_result = configs['data_params']['path_test_result']
    # label to id dict
    path_pkl = os.path.join(configs['data_params']['alphabet_params']['path'],
                            'label.pkl')
    label2id_dict = read_bin(path_pkl)
    infer = Inference(encoder=encoder,
                      ptr_model=ptr_model,
                      decoder=decoder,
                      data_iter=data_iter_test,
                      data_raw=data_test,
                      path_result=path_result,
                      label2id_dict=label2id_dict)

    # do infer
    infer.infer2file()
예제 #2
0
def start_test(train_iter, dev_iter, test_iter, model, alphabet, config):
    config.logger.info("\nTesting Start......")
    data, path_source, path_result = load_test_data(train_iter, dev_iter,
                                                    test_iter, config)
    infer = Inference(model=model,
                      data=data,
                      path_source=path_source,
                      path_result=path_result,
                      alphabet=alphabet,
                      use_crf=config.use_crf,
                      config=config)
    infer.infer2file()
    config.logger.info("Finished Test.")