我在处理以下情况时遇到奇怪的行为。 tne是批次大小,而N是每个示例的可能位置总数。每个示例均具有24个标量输出,其位置存储在自由度张量中(自由度的大小为(tne X 24))。 Fint_e的大小为tneX24(即,每个示例的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