XCLIP训练错误记录

XCLIP代码链接:GitHub - microsoft/VideoX: VideoX: a collection of video cross-modal models

1、关于数据处理:

按照readme.md

说明:

将所有视频文件都放在同一个文件夹中 ,也可以是一个zip/tar压缩文件

train.txt和test.txt按照一定比例划分,并且视频的类别一定要从0开始

---------------------------------------------------------------------------------------------------------------------------------

说明:除了准备视频文件, train.txt和test.txt之外,还需要准备一个.csv文件用于描述每个类别具体指代哪个情形

重点说明:id一定要从0开始

--------------------------------------------------------------------------------------------------------------------

报错:

File "/home/xxxxxx/xxxx/X-CLIP/datasets/blending.py", line 11, in one_hot assert (x >= 0).all() and (x < num_classes).all(), "Index out of bounds in scatter operation" AssertionError: Index out of bounds in scatter operation

错误原因:

根据报错信息,断言失败了,说明 x 中有元素的值不在 [0, num_classes) 的范围内。这可能是因为数据在某些情况下包含了非法索引。排查这个问题的原因,并确保 x 的值总是在合法范围内。

找到one_hot assert (x >= 0).all() and (x < num_classes).all()所在的行,在这行前面增加打印信息:

def one_hot(x, num_classes, on_value=1., off_value=0., device='cuda'):
    x = x.long().view(-1, 1)
    print(f"x: {x}")
    print(f"num_classes: {num_classes}")
    print(f"x.min(): {x.min()}, x.max(): {x.max()}")
    assert (x >= 0).all() and (x < num_classes).all(), "Index out of bounds in scatter operation"

    return torch.full((x.size()[0], num_classes), off_value, device=device).scatter_(1, x, on_value)

 打印出结果:

标签越界了,查看后发现.csv中id是从1开始的,并且txt文件中的标签也是从1开始的,更改后,运行成功 

-----------------------------------------------------------------------------------------------------------------------


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值