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位;