Rate this Page

torch.narrow_copy#

torch.narrow_copy(input,dim,start,length,*,out=None)Tensor#

Same asTensor.narrow() except this returns a copy ratherthan shared storage. This is primarily for sparse tensors, whichdo not have a shared-storage narrow method.

Parameters
  • input (Tensor) – the tensor to narrow

  • dim (int) – the dimension along which to narrow

  • start (int) – index of the element to start the narrowed dimension from. Canbe negative, which means indexing from the end ofdim

  • length (int) – length of the narrowed dimension, must be weakly positive

Keyword Arguments

out (Tensor,optional) – the output tensor.

Example:

>>>x=torch.tensor([[1,2,3],[4,5,6],[7,8,9]])>>>torch.narrow_copy(x,0,0,2)tensor([[ 1,  2,  3],        [ 4,  5,  6]])>>>torch.narrow_copy(x,1,1,2)tensor([[ 2,  3],        [ 5,  6],        [ 8,  9]])>>>s=torch.arange(16).reshape(2,2,2,2).to_sparse(2)>>>torch.narrow_copy(s,0,0,1)tensor(indices=tensor([[0, 0],                       [0, 1]]),       values=tensor([[[0, 1],                       [2, 3]],                      [[4, 5],                       [6, 7]]]),       size=(1, 2, 2, 2), nnz=2, layout=torch.sparse_coo)

See also

torch.narrow() for a non copy variant