前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytorch的python API略读--tensor(一)

pytorch的python API略读--tensor(一)

作者头像
用户9875047
发布2022-07-04 13:53:34
2600
发布2022-07-04 13:53:34
举报
文章被收录于专栏:机器视觉全栈er

作者:机器视觉全栈er 来源:cvtutorials.com

2.0 简介

torch定义了高维tensor的数据结构、数学运算,提供了tensor序列化的方法以及其他一些实用工具。除此以外,还可在英伟达的GPU上使用CUDA加速tensor计算。

2.1 tensor

首先,我们介绍一些返回值为布尔变量的函数,如is_tensor, is_floating_point, is_nonzero。

is_tensor:检查一个对象是否是pytorch的tensor,用法如下:

代码语言:javascript
复制
torch.is_tensor(obj)

但是官方建议使用isinstance(obj,Tensor)取代is_tensor函数

is_floating_point:检查输入的数据类型是否是浮点型,例如torch.float64, torch.float32, torch.float16和torch.bfloat16,用法如下:

代码语言:javascript
复制
torch.is_floating_point(input)

is_nonzero:检查输入的单元素张量在类型转换后是否为0,用法如下:

代码语言:javascript
复制
torch.is_nonzero(input)

我们现在来举几个例子:

代码语言:javascript
复制
>>> import torch
>>> torch.is_nonzero(torch.tensor([0.]))
False
>>> torch.is_nonzero(torch.tensor([1]))
True
>>> torch.is_nonzero(torch.tensor([True]))
True

输入必须是单元素,否则,会抛出一个异常:

代码语言:javascript
复制
>>> 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,用法如下:

代码语言:javascript
复制
torch.set_default_dtype(d)

d可以是torch.float32或者torch.float64,现在举几个例子解释下用法:

代码语言:javascript
复制
>>> 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:得到当前默认的数据类型,用法如下:

代码语言:javascript
复制
torch.get_default_dtype()

这个比较简单,不举例说明。

numel:返回输入tensor的元素数量,numel是number of elements的缩写,用法如下:

代码语言:javascript
复制
torch.numel(input)

这个函数返回的是输入变量的元素数量,举个例子:

代码语言:javascript
复制
>>> import torch
>>> torch.numel(torch.randn(10, 10, 10))
1000

set_printoptions:对print函数进行设置,用法如下:

代码语言:javascript
复制
torch.set_printoptions(precision=None,threshold=None,edgeitems=None,linewidth=None,profile=None,sci_mode=None)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉全栈er 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:机器视觉全栈er 来源:cvtutorials.com
  • 2.0 简介
  • 2.1 tensor
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档