.. currentmodule:: torch torch.Tensor =================================== A :class:`torch.Tensor` is a multi-dimensional matrix containing elements of a single data type. Torch defines seven CPU tensor types and eight GPU tensor types: ======================== =========================== ================================ Data type CPU tensor GPU tensor ======================== =========================== ================================ 32-bit floating point :class:`torch.FloatTensor` :class:`torch.cuda.FloatTensor` 64-bit floating point :class:`torch.DoubleTensor` :class:`torch.cuda.DoubleTensor` 16-bit floating point :class:`torch.HalfTensor` :class:`torch.cuda.HalfTensor` 8-bit integer (unsigned) :class:`torch.ByteTensor` :class:`torch.cuda.ByteTensor` 8-bit integer (signed) :class:`torch.CharTensor` :class:`torch.cuda.CharTensor` 16-bit integer (signed) :class:`torch.ShortTensor` :class:`torch.cuda.ShortTensor` 32-bit integer (signed) :class:`torch.IntTensor` :class:`torch.cuda.IntTensor` 64-bit integer (signed) :class:`torch.LongTensor` :class:`torch.cuda.LongTensor` ======================== =========================== ================================ The :class:`torch.Tensor` constructor is an alias for the default tensor type (:class:`torch.FloatTensor`). A tensor can be constructed from a Python :class:`list` or sequence: :: >>> torch.FloatTensor([[1, 2, 3], [4, 5, 6]]) 1 2 3 4 5 6 [torch.FloatTensor of size 2x3] An empty tensor can be constructed by specifying its size: :: >>> torch.IntTensor(2, 4).zero_() 0 0 0 0 0 0 0 0 [torch.IntTensor of size 2x4] The contents of a tensor can be accessed and modified using Python's indexing and slicing notation: :: >>> x = torch.FloatTensor([[1, 2, 3], [4, 5, 6]]) >>> print(x[1][2]) 6.0 >>> x[0][1] = 8 >>> print(x) 1 8 3 4 5 6 [torch.FloatTensor of size 2x3] Each tensor has an associated :class:`torch.Storage`, which holds its data. The tensor class provides multi-dimensional, `strided <https://en.wikipedia.org/wiki/Stride_of_an_array>`_ view of a storage and defines numeric operations on it. .. note:: Methods which mutate a tensor are marked with an underscore suffix. For example, :func:`torch.FloatTensor.abs_` computes the absolute value in-place and returns the modified tensor, while :func:`torch.FloatTensor.abs` computes the result in a new tensor. .. class:: Tensor() Tensor(*sizes) Tensor(size) Tensor(sequence) Tensor(ndarray) Tensor(tensor) Tensor(storage) Creates a new tensor from an optional size or data. If no arguments are given, an empty zero-dimensional tensor is returned. If a :class:`numpy.ndarray`, :class:`torch.Tensor`, or :class:`torch.Storage` is given, a new tensor that shares the same data is returned. If a Python sequence is given, a new tensor is created from a copy of the sequence. .. automethod:: abs .. automethod:: abs_ .. automethod:: acos .. automethod:: acos_ .. automethod:: add .. automethod:: add_ .. automethod:: addbmm .. automethod:: addbmm_ .. automethod:: addcdiv .. automethod:: addcdiv_ .. automethod:: addcmul .. automethod:: addcmul_ .. automethod:: addmm .. automethod:: addmm_ .. automethod:: addmv .. automethod:: addmv_ .. automethod:: addr .. automethod:: addr_ .. automethod:: apply_ .. automethod:: asin .. automethod:: asin_ .. automethod:: atan .. automethod:: atan2 .. automethod:: atan2_ .. automethod:: atan_ .. automethod:: baddbmm .. automethod:: baddbmm_ .. automethod:: bernoulli .. automethod:: bernoulli_ .. automethod:: bmm .. automethod:: byte .. automethod:: cauchy_ .. automethod:: ceil .. automethod:: ceil_ .. automethod:: char .. automethod:: chunk .. automethod:: clamp .. automethod:: clamp_ .. automethod:: clone .. automethod:: contiguous .. automethod:: copy_ .. automethod:: cos .. automethod:: cos_ .. automethod:: cosh .. automethod:: cosh_ .. automethod:: cpu .. automethod:: cross .. automethod:: cuda .. automethod:: cumprod .. automethod:: cumsum .. automethod:: data_ptr .. automethod:: diag .. automethod:: dim .. automethod:: dist .. automethod:: div .. automethod:: div_ .. automethod:: dot .. automethod:: double .. automethod:: eig .. automethod:: element_size .. automethod:: eq .. automethod:: eq_ .. automethod:: equal .. automethod:: erf .. automethod:: erf_ .. automethod:: erfinv .. automethod:: erfinv_ .. automethod:: exp .. automethod:: exp_ .. automethod:: expand .. automethod:: expand_as .. automethod:: exponential_ .. automethod:: fill_ .. automethod:: float .. automethod:: floor .. automethod:: floor_ .. automethod:: fmod .. automethod:: fmod_ .. automethod:: frac .. automethod:: frac_ .. automethod:: gather .. automethod:: ge .. automethod:: ge_ .. automethod:: gels .. automethod:: geometric_ .. automethod:: geqrf .. automethod:: ger .. automethod:: gesv .. automethod:: gt .. automethod:: gt_ .. automethod:: half .. automethod:: histc .. automethod:: index .. automethod:: index_add_ .. automethod:: index_copy_ .. automethod:: index_fill_ .. automethod:: index_select .. automethod:: int .. automethod:: inverse .. automethod:: is_contiguous .. autoattribute:: is_cuda :annotation: .. automethod:: is_pinned .. automethod:: is_set_to .. automethod:: is_signed .. automethod:: kthvalue .. automethod:: le .. automethod:: le_ .. automethod:: lerp .. automethod:: lerp_ .. automethod:: log .. automethod:: log1p .. automethod:: log1p_ .. automethod:: log_ .. automethod:: log_normal_ .. automethod:: long .. automethod:: lt .. automethod:: lt_ .. automethod:: map_ .. automethod:: masked_scatter_ .. automethod:: masked_fill_ .. automethod:: masked_select .. automethod:: matmul .. automethod:: max .. automethod:: mean .. automethod:: median .. automethod:: min .. automethod:: mm .. automethod:: mode .. automethod:: mul .. automethod:: mul_ .. automethod:: multinomial .. automethod:: mv .. automethod:: narrow .. automethod:: ndimension .. automethod:: ne .. automethod:: ne_ .. automethod:: neg .. automethod:: neg_ .. automethod:: nelement .. automethod:: new .. automethod:: nonzero .. automethod:: norm .. automethod:: normal_ .. automethod:: numel .. automethod:: numpy .. automethod:: orgqr .. automethod:: ormqr .. automethod:: permute .. automethod:: pin_memory .. automethod:: potrf .. automethod:: potri .. automethod:: potrs .. automethod:: pow .. automethod:: pow_ .. automethod:: prod .. automethod:: pstrf .. automethod:: put_ .. automethod:: qr .. automethod:: random_ .. automethod:: reciprocal .. automethod:: reciprocal_ .. automethod:: remainder .. automethod:: remainder_ .. automethod:: renorm .. automethod:: renorm_ .. automethod:: repeat .. automethod:: resize_ .. automethod:: resize_as_ .. automethod:: round .. automethod:: round_ .. automethod:: rsqrt .. automethod:: rsqrt_ .. automethod:: scatter_ .. automethod:: select .. automethod:: set_ .. automethod:: share_memory_ .. automethod:: short .. automethod:: sigmoid .. automethod:: sigmoid_ .. automethod:: sign .. automethod:: sign_ .. automethod:: sin .. automethod:: sin_ .. automethod:: sinh .. automethod:: sinh_ .. automethod:: size .. automethod:: sort .. automethod:: split .. automethod:: sqrt .. automethod:: sqrt_ .. automethod:: squeeze .. automethod:: squeeze_ .. automethod:: std .. automethod:: storage .. automethod:: storage_offset .. automethod:: storage_type .. automethod:: stride .. automethod:: sub .. automethod:: sub_ .. automethod:: sum .. automethod:: svd .. automethod:: symeig .. automethod:: t .. automethod:: t_ .. automethod:: take .. automethod:: tan .. automethod:: tan_ .. automethod:: tanh .. automethod:: tanh_ .. automethod:: tolist .. automethod:: topk .. automethod:: trace .. automethod:: transpose .. automethod:: transpose_ .. automethod:: tril .. automethod:: tril_ .. automethod:: triu .. automethod:: triu_ .. automethod:: trtrs .. automethod:: trunc .. automethod:: trunc_ .. automethod:: type .. automethod:: type_as .. automethod:: unfold .. automethod:: uniform_ .. automethod:: unsqueeze .. automethod:: unsqueeze_ .. automethod:: var .. automethod:: view .. automethod:: view_as .. automethod:: zero_ .. class:: ByteTensor() The following methods are unique to :class:`torch.ByteTensor`. .. automethod:: all .. automethod:: any