예제 #1
0
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())))
예제 #2
0
파일: train.py 프로젝트: xuyouze/DropNet
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("--------------------------------------------------------")