torch定义了高维tensor的数据结构、数学运算,提供了tensor序列化的方法以及其他一些实用工具。除此以外,还可在英伟达的GPU上使用CUDA加速tensor计算。
首先,我们介绍一些返回值为布尔变量的函数,如is_tensor, is_floating_point, is_nonzero。
is_tensor:检查一个对象是否是pytorch的tensor,用法如下:
torch.is_tensor(obj)
但是官方建议使用isinstance(obj,Tensor)取代is_tensor函数
is_floating_point:检查输入的数据类型是否是浮点型,例如torch.float64, torch.float32, torch.float16和torch.bfloat16,用法如下:
torch.is_floating_point(input)
is_nonzero:检查输入的单元素张量在类型转换后是否为0,用法如下:
torch.is_nonzero(input)
我们现在来举几个例子:
>>> import torch
>>> torch.is_nonzero(torch.tensor([0.]))
False
>>> torch.is_nonzero(torch.tensor([1]))
True
>>> torch.is_nonzero(torch.tensor([True]))
True
输入必须是单元素,否则,会抛出一个异常:
>>> import torch
>>> torch.is_nonzero(torch.tensor([1, 2, 3]))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: Boolean value of Tensor with more than one value is ambiguous
然后,我们再介绍一些get和set函数,如set_default_dtype、get_default_dtype、numel、set_default_tensor_type和set_printoptions
set_default_dtype:将默认的浮点类型设置为某个类型,可以是torch.float32和torch.float64,用法如下:
torch.set_default_dtype(d)
d可以是torch.float32或者torch.float64,现在举几个例子解释下用法:
>>> import torch
>>> torch.tensor([1., 2., 3]).dtype
torch.float32
>>> torch.set_default_dtype(torch.float64)
>>> torch.tensor([1., 2., 3]).dtype
torch.float64
get_default_dtype:得到当前默认的数据类型,用法如下:
torch.get_default_dtype()
这个比较简单,不举例说明。
numel:返回输入tensor的元素数量,numel是number of elements的缩写,用法如下:
torch.numel(input)
这个函数返回的是输入变量的元素数量,举个例子:
>>> import torch
>>> torch.numel(torch.randn(10, 10, 10))
1000
set_printoptions:对print函数进行设置,用法如下:
torch.set_printoptions(precision=None,threshold=None,edgeitems=None,linewidth=None,profile=None,sci_mode=None)