torch.tensor文檔筆記

"""python

===================================數組

A :class:`torch.Tensor` 是包含單一元素的duo維矩陣app

Torch 定義了9種cpu類型,9種gpu類型:dom

注意區分dtype以及cpu和gpu tensor;一個時屬性操做,另外兩個是類封裝操做;ide

========================   ===========================================   ===========================   ================================函數

Data type                  dtype類型:屬性操做                            CPU tensor類操做,注意進行了封裝         GPU tensor佈局

========================   ===========================================   ===========================   ================================ui

32-bit floating point      ``torch.float32`` or ``torch.float``          :class:`torch.FloatTensor`    :class:`torch.cuda.FloatTensor`spa

64-bit floating point      ``torch.float64`` or ``torch.double``         :class:`torch.DoubleTensor`   :class:`torch.cuda.DoubleTensor`orm

16-bit floating point      ``torch.float16`` or ``torch.half``           :class:`torch.HalfTensor`     :class:`torch.cuda.HalfTensor`

8-bit integer (unsigned)   ``torch.uint8``                               :class:`torch.ByteTensor`     :class:`torch.cuda.ByteTensor`

8-bit integer (signed)     ``torch.int8``                                :class:`torch.CharTensor`     :class:`torch.cuda.CharTensor`

16-bit integer (signed)    ``torch.int16`` or ``torch.short``            :class:`torch.ShortTensor`    :class:`torch.cuda.ShortTensor`

32-bit integer (signed)    ``torch.int32`` or ``torch.int``              :class:`torch.IntTensor`      :class:`torch.cuda.IntTensor`

64-bit integer (signed)    ``torch.int64`` or ``torch.long``             :class:`torch.LongTensor`     :class:`torch.cuda.LongTensor`

Boolean                    ``torch.bool``                                :class:`torch.BoolTensor`     :class:`torch.cuda.BoolTensor`

========================   ===========================================   ===========================   ================================

 

:torch.Tensor 是torch.FloatTensor的別名

 

A tensor can be constructed from a Python :class:`list` or sequence using the

:func:`torch.tensor` constructor:

 

::tensor張量能夠經過默認的python list進行構造(以下),也能夠經過torch.tensor進行構造

 

    >>> torch.tensor([[1., -1.], [1., -1.]])

    tensor([[ 1.0000, -1.0000],

            [ 1.0000, -1.0000]])

    >>> torch.tensor(np.array([[1, 2, 3], [4, 5, 6]]))

    tensor([[ 1,  2,  3],

            [ 4,  5,  6]])

 

.. warning::

 

    :func:`torch.tensor` 老是拷貝數據.若是隻想改變requires_grad標誌,則使用requires_grad_()或 detach()來避免拷貝;

    若是您有一個numpy數組並但願避免複製,請使用 torch.as_tensor();

 

能夠經過將 torch.dtype和/或a torch.device傳遞給構造函數或張量建立操做來構造特定數據類型的張量

::

 

    >>> torch.zeros([2, 4], dtype=torch.int32)

    tensor([[ 0,  0,  0,  0],

            [ 0,  0,  0,  0]], dtype=torch.int32)

    >>> cuda0 = torch.device('cuda:0')

    >>> torch.ones([2, 4], dtype=torch.float64, device=cuda0)

    tensor([[ 1.0000,  1.0000,  1.0000,  1.0000],

            [ 1.0000,  1.0000,  1.0000,  1.0000]], dtype=torch.float64, device='cuda:0')

 

張量的內容可使用Python的索引和切片符號來訪問和修改

::

 

    >>> x = torch.tensor([[1, 2, 3], [4, 5, 6]])

    >>> print(x[1][2])

    tensor(6)

    >>> x[0][1] = 8

    >>> print(x)

    tensor([[ 1,  8,  3],

            [ 4,  5,  6]])

 

用torch.Tensor.item()從張量中獲取包含單個值的Python數字

::

 

    >>> x = torch.tensor([[1]])

    >>> x

    tensor([[ 1]])

    >>> x.item()

    1

    >>> x = torch.tensor(2.5)

    >>> x

    tensor(2.5000)

    >>> x.item()

    2.5

 

使用建立張量,requires_grad=True以便torch.autograd在其上記錄操做以進行自動微分。

::

 

    >>> x = torch.tensor([[1., -1.], [1., 1.]], requires_grad=True)

    >>> out = x.pow(2).sum()

    >>> out.backward()

    >>> x.grad

    tensor([[ 2.0000, -2.0000],

            [ 2.0000,  2.0000]])

 

每一個張量都有一個關聯的torch.Storage,用於保存其數據。

 

.. 注意::

   改變張量的方法用下劃線後綴標記。例如,torch.FloatTensor.abs_()就地計算絕對值並返回修改後的張量,而torch.FloatTensor.abs() 在新張量中計算結果

 

.. 注意::

    要更改現有的張量torch.device和/或torch.dtype,請考慮to()在張量上使用

 

.. class:: Tensor()

   建立張量的主要方法有幾種,具體取決於您的用例。

    要使用現有數據建立張量,請使用torch.tensor()。

    要建立具備特定大小的張量,請使用torch.*張量建立操做(請參閱建立操做)。

    要建立與另外一個張量具備相同大小(和類似類型)的張量,請使用torch.*_like張量建立操做(請參見建立操做)。

    要建立與其餘張量具備類似類型但大小不一樣的張量,請使用tensor.new_*creation ops。

 

   .. automethod:: new_tensor

   .. automethod:: new_full

   .. automethod:: new_empty

   .. automethod:: new_ones

   .. automethod:: new_zeros

 

   .. autoattribute:: is_cuda

   .. autoattribute:: device

   .. autoattribute:: grad

   .. autoattribute:: ndim

   .. autoattribute:: T

 

   .. 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:: allclose

   .. automethod:: apply_

   .. automethod:: argmax 返回input張量中全部元素的最大值的索引

   .. automethod:: argmin

   .. automethod:: argsort 返回按值升序對給定維度上的張量排序的索引。

   .. automethod:: asin

   .. automethod:: asin_

   .. automethod:: as_strided

   .. automethod:: atan

   .. automethod:: atan2

   .. automethod:: atan2_

   .. automethod:: atan_

   .. automethod:: backward 進行反向傳播計算

   .. automethod:: baddbmm

   .. automethod:: baddbmm_

   .. automethod:: bernoulli

   .. automethod:: bernoulli_

   .. automethod:: bfloat16

   .. automethod:: bincount

   .. automethod:: bitwise_not

   .. automethod:: bitwise_not_

   .. automethod:: bmm

   .. automethod:: bool

   .. automethod:: byte

   .. automethod:: cauchy_

   .. automethod:: ceil

   .. automethod:: ceil_

   .. automethod:: char

   .. automethod:: cholesky

   .. automethod:: cholesky_inverse

   .. automethod:: cholesky_solve

   .. automethod:: chunk將張量拆分爲特定數量的塊

   .. automethod:: clamp將全部元素固定在[,]input範圍內,並返回結果張量

   .. automethod:: clamp_

   .. automethod:: clone

   .. automethod:: contiguous

   .. automethod:: copy_

   .. automethod:: cos

   .. automethod:: cos_

   .. automethod:: cosh

   .. automethod:: cosh_

   .. automethod:: cpu返回此對象在CPU內存中的副本

   .. automethod:: cross返回維度dim爲input 和的向量的叉積other

   .. automethod:: cuda返回此對象在GPU內存中的副本

   .. automethod:: cumprod返回input維度中 的元素的累積乘積dim。

   .. automethod:: cumsum

   .. automethod:: data_ptr

   .. automethod:: dequantize

   .. automethod:: det

   .. automethod:: dense_dim

   .. automethod:: detach返回與當前圖形分離的新Tensor

   .. automethod:: detach_

   .. automethod:: diag

   .. automethod:: diag_embed

   .. automethod:: diagflat

   .. automethod:: diagonal

   .. automethod:: fill_diagonal_

   .. automethod:: digamma

   .. automethod:: digamma_

   .. 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:: erfc

   .. automethod:: erfc_

   .. automethod:: erfinv

   .. automethod:: erfinv_

   .. automethod:: exp

   .. automethod:: exp_

   .. automethod:: expm1

   .. automethod:: expm1_

   .. automethod:: expand

   .. automethod:: expand_as

   .. automethod:: exponential_

   .. automethod:: fft

   .. automethod:: fill_

   .. automethod:: flatten展平張量中連續的範圍

   .. automethod:: flip沿給定軸反轉nD張量的順序

   .. 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:: get_device

   .. automethod:: gt

   .. automethod:: gt_

   .. automethod:: half

   .. automethod:: hardshrink

   .. automethod:: histc

   .. automethod:: ifft

   .. automethod:: index_add_經過按中給定的順序添加索引,將張量的元素累加tensor到self張量中index

   .. automethod:: index_add

   .. automethod:: index_copy_經過按中給定的順序選擇索引,將的元素複製tensor到self張量中index

   .. automethod:: index_copy

   .. automethod:: index_fill_經過按中給出的順序選擇索引,self用值填充張量的元素

   .. automethod:: index_fill

   .. automethod:: index_put_使用中指定的索引(張量的元組)將張量的值value放入張量

   .. automethod:: index_put

   .. automethod:: index_select返回一個新的張量,該input張量dim使用index其中的LongTensor項沿維度對張 量進行索引

   .. automethod:: indices若是self是稀疏的COO張量(即具備佈局),則返回包含的索引張量的視圖

   .. automethod:: int

   .. automethod:: int_repr

   .. automethod:: inverse

   .. automethod:: irfft

   .. automethod:: is_contiguous

   .. automethod:: is_floating_point

   .. automethod:: is_leaf

   .. automethod:: is_pinned

   .. automethod:: is_set_to

   .. automethod:: is_shared

   .. automethod:: is_signed

   .. automethod:: is_sparse

   .. automethod:: item

   .. automethod:: kthvalue

   .. automethod:: le

   .. automethod:: le_

   .. automethod:: lerp

   .. automethod:: lerp_

   .. automethod:: log

   .. automethod:: log_

   .. automethod:: logdet

   .. automethod:: log10

   .. automethod:: log10_

   .. automethod:: log1p

   .. automethod:: log1p_

   .. automethod:: log2

   .. automethod:: log2_

   .. automethod:: log_normal_

   .. automethod:: logsumexp

   .. automethod:: long

   .. automethod:: lstsq

   .. automethod:: lt

   .. automethod:: lt_

   .. automethod:: lu

   .. automethod:: lu_solve

   .. automethod:: map_

   .. automethod:: masked_scatter_

   .. automethod:: masked_scatter

   .. automethod:: masked_fill_

   .. automethod:: masked_fill

   .. automethod:: masked_select

   .. automethod:: matmul

   .. automethod:: matrix_power

   .. automethod:: max

   .. automethod:: mean返回input張量中全部元素的平均值。

   .. automethod:: median返回input張量中全部元素的中值。

   .. automethod:: min

   .. automethod:: mm

   .. automethod:: mode返回一個namedtuple ,其中是給定維度中張量 的每一行的衆數值,即在該行中最常出現的值,而且是找到的每一個衆數值的索引位置

   .. automethod:: mul

   .. automethod:: mul_

   .. automethod:: multinomial

   .. automethod:: mv

   .. automethod:: mvlgamma

   .. automethod:: mvlgamma_

   .. automethod:: narrow

   .. automethod:: narrow_copy

   .. automethod:: ndimension

   .. automethod:: ne

   .. automethod:: ne_

   .. automethod:: neg

   .. automethod:: neg_

   .. automethod:: nelement

   .. automethod:: nonzero

   .. automethod:: norm返回給定張量的矩陣範數或向量範數。

   .. automethod:: normal_

   .. automethod:: numel返回input張量中元素的總數

   .. automethod:: numpy返回爲NumPy ndarray

   .. automethod:: orgqr

   .. automethod:: ormqr

   .. automethod:: permute

   .. automethod:: pin_memory

   .. automethod:: pinverse

   .. automethod:: pow

   .. automethod:: pow_

   .. automethod:: prod

   .. automethod:: put_

   .. automethod:: qr

   .. automethod:: qscheme

   .. automethod:: q_scale

   .. automethod:: q_zero_point

   .. automethod:: random_

   .. automethod:: reciprocal

   .. automethod:: reciprocal_

   .. automethod:: register_hook

   .. automethod:: remainder

   .. automethod:: remainder_

   .. automethod:: renorm

   .. automethod:: renorm_

   .. automethod:: repeat

   .. automethod:: repeat_interleave

   .. automethod:: requires_grad

   .. automethod:: requires_grad_

   .. automethod:: reshape

   .. automethod:: reshape_as

   .. automethod:: resize_

   .. automethod:: resize_as_

   .. automethod:: retain_grad

   .. automethod:: rfft

   .. automethod:: roll

   .. automethod:: rot90

   .. automethod:: round

   .. automethod:: round_

   .. automethod:: rsqrt

   .. automethod:: rsqrt_

   .. automethod:: scatter

   .. automethod:: scatter_在true的位置將元素從張量複製source到self張量mask

   .. automethod:: scatter_add_

   .. automethod:: scatter_add

   .. 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:: slogdet

   .. automethod:: solve

   .. automethod:: sort

   .. automethod:: split

   .. automethod:: sparse_mask

   .. automethod:: sparse_dim

   .. automethod:: sqrt

   .. automethod:: sqrt_

   .. automethod:: squeeze返回一個刪除全部input大小爲1的尺寸的張量

   .. automethod:: squeeze_

   .. automethod:: std

   .. automethod:: stft

   .. automethod:: storage

   .. automethod:: storage_offset

   .. automethod:: storage_type

   .. automethod:: stride

   .. automethod:: sub

   .. automethod:: sub_

   .. automethod:: sum

   .. automethod:: sum_to_size

   .. automethod:: svd

   .. automethod:: symeig

   .. automethod:: t

   .. automethod:: t_

   .. automethod:: to

   .. automethod:: to_mkldnn

   .. automethod:: take返回具備的元素input在給定索引處的新張量

   .. automethod:: tan

   .. automethod:: tan_

   .. automethod:: tanh

   .. automethod:: tanh_

   .. automethod:: tolist轉換爲list

   .. automethod:: topk

   .. automethod:: to_sparse

   .. automethod:: trace返回輸入二維矩陣對角線元素的總和

   .. automethod:: transpose

   .. automethod:: transpose_

   .. automethod:: triangular_solve

   .. automethod:: tril

   .. automethod:: tril_

   .. automethod:: triu

   .. automethod:: triu_

   .. automethod:: trunc返回一個新的張量,其中帶有的元素的整數值被截斷input

   .. automethod:: trunc_

   .. automethod:: type

   .. automethod:: type_as

   .. automethod:: unbind刪除張量尺寸

   .. automethod:: unfold

   .. automethod:: uniform_

   .. automethod:: unique返回輸入張量的惟一元素

   .. automethod:: unique_consecutive

   .. automethod:: unsqueeze返回在指定位置插入的尺寸爲一的新張量

   .. automethod:: unsqueeze_

   .. automethod:: values

   .. automethod:: var

   .. automethod:: view返回一個新的張量,其數據與self張量相同,但不一樣shape

   .. automethod:: view_as

   .. automethod:: where

   .. automethod:: zero_

 

.. class:: BoolTensor()

 

   The following methods are unique to :class:`torch.BoolTensor`.

 

   .. automethod:: all

   .. automethod:: any

"""

import torch

t = torch.tensor([[1., -1.], [1., -1.]])

t2 = torch.tensor([[1., -1.], [1., -1.]],dtype=torch.float)

t3 = torch.FloatTensor([[1., -1.], [1., -1.]])

t4 = torch.Tensor(3,5)

print(type(t2),type(t3),t4,t3)

相關文章
相關標籤/搜索