pytorch中的数组索引

我在处理以下情况时遇到奇怪的行为。 tne是批次大小,而N是每个示例的可能位置总数。每个示例均具有24个标量输出,其位置存储在自由度张量中(自由度的大小为(tne X 24))。 Fint_e的大小为tneX2​​4(即,每个示例的24个输出)。我正在尝试构造一个大张量,其大小为tne XN。执行以下操作时,它以错误的方式填充。有什么建议吗?

Fint_MAT        = torch.zeros((tne,N))
Fint_MAT[:,dof]  = Fint_e

批量大小为X 24的自由度张量对于每个示例具有不同的索引,但是每个示例总共具有24个索引。

例如,

dof [0 ,:] = 0、1、6、9…(共24个)

dof [1 ,:] = 1,100,151,300,…(共24个)

任何提示将不胜感激。

为了更好地阐述,我在下面提供了一个简单的方案:

tne = 3
N   = 48
Fint_MAT = torch.zeros((tne,N))
Fint_e   = torch.randn((tne, 24))
v1 = torch.arange(24).unsqueeze(0)
v2 = torch.arange(12, 36).unsqueeze(0)
v3 = torch.arange(24, 48).unsqueeze(0)
dof      = torch.cat((v1,v2,v3), axis=0).long()
Fint_MAT[:,dof]  = Fint_e