【翻译】pytorch中文文档(1.2.0)- Package Reference/torch

TORCH

torch package包含多维张量和定义好的数学运算的数据结构。另外,它提供了许多实用程序用于有效的序列化张量和任意类型,以及其他有用的实用程序。

它支持CUDA环境,使你能在NVIDIA GPU上进行你的张量计算,这要求你compute capability>=3.0。

Tensors

  • torch.is_tensor(obj) [源码]

    如果是一个PyTorch tensor返回True

    • Parameters

      obj(Object)-要测试的对象

  • torch.is_storage(obj) [源码]

    如果obj是pytorch storage对象就返回True

    • Parameters

      obj( Object ) - 要测试的对象

  • torch.is_floating_point(input) ——> (bool)

    如果input的数据类型是浮点型数据(即torch.float64, torch.float32torch.float16中的一种),就返回True。

    • _Parameters

      input(Tensor) —— 要测试的pytorch张量

  • torch.set_default_dtype(d) [源码]

    把默认的浮点数类型的dtype设为d。这种类型将被用做torch.tensor()类型推断的默认浮点类型。这个默认的浮点dtype是初始为torch.float32

    • Parameters

      d(torch.dtype) —— 将被设为默认的浮点型dtype

      例如:

1
2
3
4
5
>>> torch.tensor([1.2, 3]).dtype     # 初始默认的浮点型是torch.float32
torch.float32
>>> torch.set_default_dtype(torch.float64)
>>> torch.tensor([1.2, 3]).dtype # 新的浮点型tensor
torch.float64
  • torch.get_default_dtype() ——> torch.dtype

    获得当前默认浮点型torch.dtype

    例如:

1
2
3
4
5
6
7
8
9
>>> torch.get_default_dtype()  # 初始默认的浮点型为torch.float32
torch.float32
>>> torch.set_default_dtype(torch.float64)
>>> torch.get_default_dtype() # 默认改为torch.float64
torch.float64
>>> torch.set_default_tensor_type(torch.FloatTensor)
# 设置tensor type也会影响这个
>>> torch.get_default_dtype() # 改为了对应于torch.FloatTensor对应的dtype:torch.float32
torch.float32
  • torch.set_default_tensor_type( t ) [源码]

    设置默认的torch.Tensor类型为浮点型tensor类型t。这种类型也将会被勇作为torch.tensor()类型推断的默认浮点型类型。

    默认的浮点型tensor type是初始化为torch.FloatTensor

    • Parameters
      t( type or string ) —— 浮点型tensor type或者它的名字

      例如:

1
2
3
4
5
>>> torch.tensor([1.2, 3]).dtype     # 初始的默认浮点型是torch.float32
torch.float32
>>> torch.set_default_tensor_type(torch.DoubleTensor)
>>> torch.tensor([1.2, 3]).dtype # 新的浮点型tensor
torch.float64
  • torch.numel( input ) ——> int

    返回input张量里元素的数量

    • Parameters

      input( Tensor ) —— 输入的向量

      例如:

1
2
3
4
5
6
>>> a = torch.randn(1, 2, 3, 4, 5)
>>> torch.numel(a)
120
>>> a = torch.zeros(4, 4)
>>> torch.numel(a)
16
  • torch.set_printoptions( precision=None, threshold=None, edgeitems=None, linewidth=None, profile=None, sci_mode=None ) [源码]
    为print设置选项。从NumPy中无耻地拿出的项目

    • Parameters

      • precision —— 输出浮点型精度的位数(默认为4)
      • threshold —— 输出时的阈值,当数组总和超过阈值,会被截断输出(默认为1000)
      • edgeitems —— 每个维度统计的数组条目的数量(默认为3)
      • linewidth —— 为了插入换行符每行设置的字符数(默认为80)。Thresholded矩阵将会忽略这个参数
      • profile —— Sane为了好的打印的默认设置,可以用以上任何选项覆盖掉(可以是 default,short,full 中任意一个)
      • sci_mode —— 是(True)否(False)使用科学符号。如果指定是None(默认),那么值将会被_Formatter定义。
  • torch.set_flush_denormal( mode ) ——> bool

    禁用CPU上的非规格化的浮点数

    如果你的系统支持非规格化数字(flushing denormal numbers)并且成功配置非规格化模式(flush denormal mode)将会返回True。set_flush_denormal()仅使用在支持SSE3的x86架构。

    • Parameters

      mode( boor ) —— 控制是否使用非规格化模式(flush denormal mode)

      例如:

1
2
3
4
5
6
7
8
9
>>> torch.set_flush_denormal(True)
True
>>> torch.tensor([1e-323], dtype = torch.float32)
tensor([0,], dtype=torch.float64)
>>> torch.set_flush_denormal(False)
True
>>> torch.tensor([1e-323], dtype=torch.float64)
tensor(9.88131e-324 *
[ 1.0000], dtype=torch.float64)

Creation Ops

  • NOTE

    随机抽样创建操作被列在Random sampling之下,包括:torch.rand() torch.rand_like() torch.randn_like() torch.randint() torch.randint_like() torch.randperm() 你可能也使用torch.empty()并使用In-place random sampling方法来更广泛的分布范围中取样的值来创建torch.Tensors

  • torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False) ——> Tensor

    通过data构造一个张量

    • WARNING

      torch.tensor()总是拷贝data。如果你有一个Tensordata而且想避免拷贝,请使用torch.Tensor.requires_grad_()torch.Tensor.detach()。如果你有一个NumPyndarray并且向避免拷贝,请使用torch.as_tensor()

    • WARNING

      当data是一个tensor x,torch.tensor()会读取出“the data”,无论之前传入过什么,并且构建一个leaf variable()。因此torch.tensor(x)等价于x.clone().detach()torch.tensor(x, requires_grad = True)等价于x.clone().detach().requires_grad_(True)。对于等价的操作,推荐使用clone()detach()

    • Parameters

      • data( array_like ) —— 为tensor初始化data。可以是list,tuple,Numpy ndarray,scalar,和其他类型。
      • dtype(torch.dtype, optional) —— 返回tensor期望的数据类型。默认:如果为None,从data中推断数据类型
      • device(torch.device, optional) —— 返回tensor期望使用的硬件。默认:如果是None,对当前张量类型使用当前硬件(参考torch.set_default_tensor_type())。device可以是提供CPU张量类型的CPU和支持CUDA张量类型的CUDA设备。
      • requires_grad( bool, optional) —— 如果自动求导应当记录返回张量的操作。默认:False
      • pin_memory( bool, optional) —— 如果设置,返回的向量分配到锁页内存(pinned memory)。这仅对CPU张量有效。默认:False
        例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> torch.tensor([[0.1, 1.2], [2.2, 3.1], [4.9, 5.2]])
tensor([[ 0.1000, 1.2000],
[ 2.2000, 3.1000],
[ 4.9000, 5.2000]])
>>> torch.tensor([0, 1]) # 基于data判断类型
tensor([ 0, 1])

>>> torch.tensor([[0.11111, 0.222222, 0.3333333]],
dtype=torch.float64,
device=torch.device('cuda:0')) # 创建一个torch.cuda.DoubleTensor
tensor([[ 0.1111, 0.2222, 0.3333]], dtype=torch.float64, device='cuda:0')

>>> torch.tensor(3.14159) # 创建一个标量
tensor(3.1416)

>>> torch.tensor([]) # 创建一个空张量(size为(0,))
tensor([])

Indexing, Slicing, Joining, Mutating Ops

Generators

Random sampling

In-place random sampling

Quasi-random sampling

Serialization

Parallelism

Locally disabling gradient computation

Math operations

Pointwise Ops

Reduction Ops

Comparision Ops

Spectral Ops

Other Operations

BLAS and LAPACK Operations

Utilities

———————————————感谢阅读———————————————

欢迎收藏访问我的博客 知乎 掘金 简书 知乎

贰三 wechat
欢迎扫描二维码订阅我的公众号!