GaitSet:test阶段出现错误 (ValueError: need at least one array to concatenate==)

最近,尝试了复现GaitSet 开源代码

gaitset 论文:https://arxiv.org/abs/1811.06186

gaitset代码:https://github.com/AbnerHqC/GaitSet/blob/master/model/utils/data_loader.py

在进行测试时,test出现错误

尝试了博主:https://blog.csdn.net/qq_21464351/article/details/109546421

推荐的方法,发现依旧会报错。

GaitSet:test阶段出现错误 (ValueError: need at least one array to concatenate==)_第1张图片

然后在data_loader.py 文件中,插入如下代码,查看train_list 和 test_list的内容,可能是由于自己训练时batch_size选择的大小 没有源码的batch_size 大,pid_num=73设置太大,导致train_list中有数据,而test_list中为空,所以在test.py中,当(test=m.transform('test', opt.batch_size))时,test为空,而后续计算数据为空。可以看一下train_list的范围,然后适当在config.py中缩小pid_num。运行test查看,test中是否有数据了之后。  进行训练,训练后 再进行test,此时test 会运行成功,出现准确率。

pid_fname = osp.join('partition', '{}_{}_{}.npy'.format(
        dataset, pid_num, pid_shuffle))
    if not osp.exists(pid_fname):
        pid_list = sorted(list(set(label)))
        if pid_shuffle:
            np.random.shuffle(pid_list)
        pid_list = [pid_list[0:pid_num], pid_list[pid_num:]]
        os.makedirs('partition', exist_ok=True)
        np.save(pid_fname, pid_list)

     
    pid_list = np.load(pid_fname)
    train_list = pid_list[0]
    test_list = pid_list[1]
   
    print('############')
    print('train_list')
'   print('test_list')
    print('############')


    train_source = DataSet(
        [seq_dir[i] for i, l in enumerate(label) if l in train_list],
        [label[i] for i, l in enumerate(label) if l in train_list],
        [seq_type[i] for i, l in enumerate(label) if l in train_list],
        [view[i] for i, l in enumerate(label)
         if l in train_list],
        cache, resolution)

 

你可能感兴趣的:(pytorch问题,python,机器学习,人工智能,深度学习,pytorch)