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

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

然后在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)

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值