按索引进行赋值时使用的方法有:scatter_(dim,index,src)、index_fill_(dim,index,val)、index_put_(indices,value)。
1、scatter_(dim,index,src)
按照index,将src的数据散放到self的dim维度中。例如,对于三维Tensor,dim(int)—要散布拷贝的维度;index(LongTensor)—散布拷贝的索引;src(Tensor or float)—要散布拷贝的源,可以是单个浮点值或是tensor。
2、index_fill_(dim,index,val)
按照index,将val的值填充self的dim维度。dim(int)—要填充的维度;index(LongTensor)—-要填充的索引;val(float)—要填充的值。
3、index_put_(indices,value)
按照indices,将val的值填充到self的对应位置。indices(tuple of LongTensor)—要填充的索引;value(Tensor)—要填充的值组成的tensor。
赋值的阶:
设Г是赋值φ的值群,Δ是Г的一个子群。若对于Δ的每个元素δ,Г中所有满足δ-1<у<δ的元素у也属于Δ,则Δ称为Г的一个孤立子群。{1}和Г都可以作为Г的孤立子群。以下设Г≠{1}。由于Г是有序的,Г中所有的孤立子群按包含关系成一个全序的集。
除Г本身外的所有孤立子群,按包含关系所成全序集的序型定义为Г的阶。若φ的值群Г的阶是m,就称φ是m阶赋值。因此,所谓一阶赋值,就是指值群只有{1}为其真孤立子群的赋值。
有序交换群的阶为1,当且仅当它保序同构于某个由实数所成的乘法群。这个事实表明,一阶赋值正是前面所定义的非阿基米德绝对值。