x.index_add_(0, assi, y)
代表将y中的每一个向量,分别加在x的不同向量上,具体加在x的哪一个向量上看assi。
x是被加数,y是加数,结果是和。该函数的三个参数分别是:
第一个参数0代表相加的维度,
第二个参数assi代表相加的项目,
第三个参数y代表加数。
如下图,以全0的x为例子,在dim=0上用y加在x上。
该函数中参数assi的最外一个维度和y的最外一个维度必须保持一致,x的相加维度和y的相加维度的维度必须保持一致。比如,assi是[ dim1, ],y是[ dim1, dim2 ],x是[ XX, dim2]。
上述例子中,assi是[3,],y是[3,3],x是[3,3],满足维度要求。
那么该函数的实际意义就是:
按照assi的指定,将y的依次项加到x的指定index上去,本例子中assi是[1, 1, 2],就是说将y的第零个向量,第一个向量,第二个向量,分别加到x的index为1,1,2的向量上面去。
得到结果如下: