def test_method(gpu): os.environ["CUDA_VISIBLE_DEVICES"] = gpu config = TestConfig() # config.checkpoints_dir = "/media/data2/xyz_data/CelebA_full/full_third_2019-6-19_0.9135_ckp" print("{} model was initialized".format(config.model_name)) # dataset is test set or val config.isTest = True dataset = create_dataset(config=config) model = create_model(config) for j in range(0, 102, 1): config.load_iter = j model.setup() model.clear_precision() if config.eval: model.eval() dataset_size = len(dataset) print("test dataset len: %d " % dataset_size) total_iter = int(dataset_size / config.batch_size) model.set_validate_size(dataset_size) # fc_feature = np.zeros((dataset_size, 2048)) # label = np.zeros((dataset_size, 40)) for i, data in enumerate(dataset): model.set_input(data) print("[%s/%s]" % (i, total_iter)) model.test() print(model.get_model_precision()) print(model.get_model_class_balance_precision()) print("mean accuracy: {}".format(torch.mean(model.get_model_precision()))) print("class_balance accuracy: {}".format(torch.mean(model.get_model_class_balance_precision())))
def validate(model): validate_config = TestConfig() validate_config.isTest = True logger = validate_config.test_logger logger.info("--------------------------------------------------------") logger.debug("test the model using the validate dataset") validate_dataset = create_dataset(validate_config) model.eval() model.clear_precision() model.set_validate_size(len(validate_dataset)) logger.info("validate dataset len: %d " % len(validate_dataset)) validate_total_iter = int( len(validate_dataset) / validate_config.batch_size) for j, valida_data in enumerate(validate_dataset): model.set_input(valida_data) logger.debug("[%s/%s]" % (j, validate_total_iter)) model.test() # output the precision logger.debug(model.get_model_precision()) logger.debug(model.get_model_class_balance_precision()) logger.info("mean accuracy: {}".format( torch.mean(model.get_model_precision()))) logger.info("class_balance accuracy: {}".format( torch.mean(model.get_model_class_balance_precision()))) logger.debug("validate mode end") logger.info("--------------------------------------------------------")