PyTorch人脸识别报错:get_val_data()参数不匹配(1参传2个)
问题原因
调用get_val_data时传入了2个参数(数据路径和TARGET),但utils.py中该函数的定义仅接受1个参数data_path,参数数量不匹配导致报错。
修复方案
根据你想测试指定TARGET数据集的需求,提供两种修复方式:
方式1:临时修改函数调用(测试所有数据集)
如果不需要指定单个TARGET,直接只传数据路径,同时调整后续处理逻辑适配原函数的返回格式:
# 仅传入数据路径,去掉TARGET参数 vers = get_val_data('/home/cvpr/Documents/OPVT/eval/') # 拆分原函数返回的数据集与对应issame标记 datasets = [vers[0], vers[1], vers[2], vers[3], vers[4], vers[5], vers[6]] issames = [vers[7], vers[8], vers[9], vers[10], vers[11], vers[12], vers[13]] dataset_names = ['lfw', 'cfp_ff', 'cfp_fp', 'agedb_30', 'calfw', 'cplfw', 'vgg2_fp'] # 遍历所有数据集测试 for name, data_set, issame in zip(dataset_names, datasets, issames): time = test_forward(DEVICE, model, data_set) print(f"{name}: {time}")
方式2:修改get_val_data函数(推荐,适配指定TARGET需求)
修改utils.py中的函数,让它支持传入target参数,仅返回你需要的目标数据集:
def get_val_data(data_path, target=None): # 获取所有数据集及对应issame标记 lfw, lfw_issame = get_val_pair(data_path, 'lfw') cfp_ff, cfp_ff_issame = get_val_pair(data_path, 'cfp_ff') cfp_fp, cfp_fp_issame = get_val_pair(data_path, 'cfp_fp') agedb_30, agedb_30_issame = get_val_pair(data_path, 'agedb_30') calfw, calfw_issame = get_val_pair(data_path, 'calfw') cplfw, cplfw_issame = get_val_pair(data_path, 'cplfw') vgg2_fp, vgg2_fp_issame = get_val_pair(data_path, 'vgg2_fp') # 用字典存储数据集映射 data_mapping = { 'lfw': (lfw, lfw_issame), 'cfp_ff': (cfp_ff, cfp_ff_issame), 'cfp_fp': (cfp_fp, cfp_fp_issame), 'agedb_30': (agedb_30, agedb_30_issame), 'calfw': (calfw, calfw_issame), 'cplfw': (cplfw, cplfw_issame), 'vgg2_fp': (vgg2_fp, vgg2_fp_issame) } if target: # 指定TARGET时,返回对应数据集(格式匹配原代码循环逻辑) return [(target, data_mapping[target][0], data_mapping[target][1])] else: # 未指定时返回所有数据集 return [ ('lfw', lfw, lfw_issame), ('cfp_ff', cfp_ff, cfp_ff_issame), ('cfp_fp', cfp_fp, cfp_fp_issame), ('agedb_30', agedb_30, agedb_30_issame), ('calfw', calfw, calfw_issame), ('cplfw', cplfw, cplfw_issame), ('vgg2_fp', vgg2_fp, vgg2_fp_issame) ]
修改后,原代码中的vers = get_val_data('/home/cvpr/Documents/OPVT/eval/', TARGET)可以正常运行,后续循环逻辑无需改动。
内容的提问来源于stack exchange,提问作者Khawar Islam
相关产品推荐
相关产品推荐

