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.float32
和torch.float16
中的一种),就返回True。_Parameters
input(Tensor) —— 要测试的pytorch张量
torch.set_default_dtype(d) [源码]
把默认的浮点数类型的dtype设为
d
。这种类型将被用做torch.tensor()
类型推断的默认浮点类型。这个默认的浮点dtype是初始为torch.float32Parameters
d(
torch.dtype
) —— 将被设为默认的浮点型dtype例如:
1 | 1.2, 3]).dtype # 初始默认的浮点型是torch.float32 torch.tensor([ |
torch.get_default_dtype() ——> torch.dtype
获得当前默认浮点型
torch.dtype
。例如:
1 | # 初始默认的浮点型为torch.float32 torch.get_default_dtype() |
torch.set_default_tensor_type( t ) [源码]
设置默认的
torch.Tensor
类型为浮点型tensor类型t
。这种类型也将会被勇作为torch.tensor()类型推断的默认浮点型类型。默认的浮点型tensor type是初始化为
torch.FloatTensor
。Parameters
t( type or string ) —— 浮点型tensor type或者它的名字例如:
1 | 1.2, 3]).dtype # 初始的默认浮点型是torch.float32 torch.tensor([ |
torch.numel( input ) ——> int
返回
input
张量里元素的数量Parameters
input( Tensor ) —— 输入的向量
例如:
1 | 1, 2, 3, 4, 5) a = torch.randn( |
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 | True) torch.set_flush_denormal( |
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.Tensor
s
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
。
例如:
- data( array_like ) —— 为tensor初始化data。可以是list,tuple,Numpy
1 | 0.1, 1.2], [2.2, 3.1], [4.9, 5.2]]) torch.tensor([[ |