torch.Tensor.index_copy_ — PyTorch 2.7 documentation (original) (raw)
Tensor.index_copy_(dim, index, tensor) → Tensor¶
Copies the elements of tensor into the self
tensor by selecting the indices in the order given in index
. For example, if dim == 0
and index[i] == j
, then the i
th row of tensor is copied to thej
th row of self
.
The dimth dimension of tensor must have the same size as the length of index
(which must be a vector), and all other dimensions must match self
, or an error will be raised.
Note
If index
contains duplicate entries, multiple elements fromtensor will be copied to the same index of self
. The result is nondeterministic since it depends on which copy occurs last.
Parameters
- dim (int) – dimension along which to index
- index (LongTensor) – indices of tensor to select from
- tensor (Tensor) – the tensor containing values to copy
Example:
x = torch.zeros(5, 3) t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float) index = torch.tensor([0, 4, 2]) x.index_copy_(0, index, t) tensor([[ 1., 2., 3.], [ 0., 0., 0.], [ 7., 8., 9.], [ 0., 0., 0.], [ 4., 5., 6.]])