【Pytorch】pytorch Tried to access index 6040 out of table with 6039 rows

文章讨论了在PyTorch中创建embtable时遇到的问题,即尝试访问超出embtable行数的索引。解决方法是确保创建embtable的维度为输入数据加1,以避免索引错误。对于稀疏和变长特征,需要在计算最大长度时加上1以包含所有数据项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytorch 试图从具有 6039 行的表中访问索引 6040。

创建的emb table只有6039行,但是输入的数据有6040。

创建emb table需要给定数据+1,这个维度才能创建正确的table。

# 生成输入特征设置
sparse_max_len = {f:len(encoder[f]) + 1 for f in sparse_features}
varlens_max_len = {f:len(encoder[f]) + 1 for f in varlen_features}

可以看到 len(encoder[f]) + 1,每个特征都多+1。

 

emb矩阵的构建

1、全量数据确定(size, emb_d)中的size;

2、e.g. 性别有男女两种,那么创建sex:(3,64d),那么第1维要比真实类别多1位;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值