pytorch: tensor类型的构建与相互转换实例
作者:JNingWei 发布时间:2023-06-14 09:22:57
标签:pytorch,tensor,转换
Summary
主要包括以下三种途径:
使用独立的函数;
使用torch.type()函数;
使用type_as(tesnor)将张量转换为给定类型的张量。
使用独立函数
import torch
tensor = torch.randn(3, 5)
print(tensor)
# torch.long() 将tensor投射为long类型
long_tensor = tensor.long()
print(long_tensor)
# torch.half()将tensor投射为半精度浮点类型
half_tensor = tensor.half()
print(half_tensor)
# torch.int()将该tensor投射为int类型
int_tensor = tensor.int()
print(int_tensor)
# torch.double()将该tensor投射为double类型
double_tensor = tensor.double()
print(double_tensor)
# torch.float()将该tensor投射为float类型
float_tensor = tensor.float()
print(float_tensor)
# torch.char()将该tensor投射为char类型
char_tensor = tensor.char()
print(char_tensor)
# torch.byte()将该tensor投射为byte类型
byte_tensor = tensor.byte()
print(byte_tensor)
# torch.short()将该tensor投射为short类型
short_tensor = tensor.short()
print(short_tensor)
-0.5841 -1.6370 0.1353 0.6334 -3.0761
-0.2628 0.1245 0.8626 0.4095 -0.3633
1.3605 0.5055 -2.0090 0.8933 -0.6267
[torch.FloatTensor of size 3x5]
0 -1 0 0 -3
0 0 0 0 0
1 0 -2 0 0
[torch.LongTensor of size 3x5]
-0.5840 -1.6367 0.1353 0.6333 -3.0762
-0.2627 0.1245 0.8628 0.4094 -0.3633
1.3604 0.5054 -2.0098 0.8936 -0.6265
[torch.HalfTensor of size 3x5]
0 -1 0 0 -3
0 0 0 0 0
1 0 -2 0 0
[torch.IntTensor of size 3x5]
-0.5841 -1.6370 0.1353 0.6334 -3.0761
-0.2628 0.1245 0.8626 0.4095 -0.3633
1.3605 0.5055 -2.0090 0.8933 -0.6267
[torch.DoubleTensor of size 3x5]
-0.5841 -1.6370 0.1353 0.6334 -3.0761
-0.2628 0.1245 0.8626 0.4095 -0.3633
1.3605 0.5055 -2.0090 0.8933 -0.6267
[torch.FloatTensor of size 3x5]
0 -1 0 0 -3
0 0 0 0 0
1 0 -2 0 0
[torch.CharTensor of size 3x5]
0 255 0 0 253
0 0 0 0 0
1 0 254 0 0
[torch.ByteTensor of size 3x5]
0 -1 0 0 -3
0 0 0 0 0
1 0 -2 0 0
[torch.ShortTensor of size 3x5]
其中,torch.Tensor、torch.rand、torch.randn 均默认生成 torch.FloatTensor型 :
import torch
tensor = torch.Tensor(3, 5)
assert isinstance(tensor, torch.FloatTensor)
tensor = torch.rand(3, 5)
assert isinstance(tensor, torch.FloatTensor)
tensor = torch.randn(3, 5)
assert isinstance(tensor, torch.FloatTensor)
使用torch.type()函数
type(new_type=None, async=False)
import torch
tensor = torch.randn(3, 5)
print(tensor)
int_tensor = tensor.type(torch.IntTensor)
print(int_tensor)
-0.4449 0.0332 0.5187 0.1271 2.2303
1.3961 -0.1542 0.8498 -0.3438 -0.2834
-0.5554 0.1684 1.5216 2.4527 0.0379
[torch.FloatTensor of size 3x5]
0 0 0 0 2
1 0 0 0 0
0 0 1 2 0
[torch.IntTensor of size 3x5]
使用type_as(tesnor)将张量转换为给定类型的张量
import torch
tensor_1 = torch.FloatTensor(5)
tensor_2 = torch.IntTensor([10, 20])
tensor_1 = tensor_1.type_as(tensor_2)
assert isinstance(tensor_1, torch.IntTensor)
来源:https://blog.csdn.net/JNingWei/article/details/79849600


猜你喜欢
- 本文实例讲述了django框架中ajax的使用及避开CSRF 验证的方式。分享给大家供大家参考,具体如下:ajax(Asynchronous
- 如果我需要在运行有SQL Server的机器上运行病毒扫描软件,怎样做才不会影响性能? 这取决于您希望运行的病毒扫描软件的类型。目前有三种类
- 其实这个话题已经在侧面写了好几篇深刻反思,用我自己几年工作实践的体会来看,性格决定了将来的发展。某些特质虽然可以掩饰,但在这之上必然不可能有
- 本文是关于人物角色的一些简单介绍,感谢瑶芝同学提供的大力帮助! 人物角色(Personas)作为一种技术
- 首先祝贺Echarts顺利的从Apache毕业,多了个响亮的名字:Apache ECharts,现在的官网地址在这里:传送门,首页相当的国际
- 什么是科赫曲线科赫曲线是de Rham曲线的特例。给定线段AB,科赫曲线可以由以下步骤生成: 将线段分成三等份(AC,CD,DB) 以CD为
- 除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到运行时环境的异常处理机制之中。使用
- 生活中,我们在登录微博,邮箱的时候,常常会碰到验证码。在工作时,如果想要爬取一些数据,也会碰到验证码的阻碍。本次试验将带领大家认识验证码的一
- 本文实例讲述了Python使用win32com实现的模拟浏览器功能。分享给大家供大家参考,具体如下:# -*- coding:UTF-8 -
- 本文实例为大家分享了关于Player播放器组件的具体内容,供大家参考,具体内容如下迷你播放器:1.播放器组件会在各个页面的情况下会打开。 首
- 1.合并1.1 结构合并将两个结构相同的数据合并1.1.1 concat函数函数配置:concat([dataFrame1, dataFra
- 本文实例讲述了Python基础之条件控制操作。分享给大家供大家参考,具体如下:if 语句Python中if语句的一般形式如下所示:if co
- 简单说明:思路:从数据岛menuXML中读取数据,从树的根节点开始分析树,利用 hasChildNodes() [方法:是否含有子节点 ]
- PDO::inTransactionPDO::inTransaction — 检查是否在一个事务内(PHP 5 >= 5.3.3, B
- 首先你要确定错误的原因: 让IE显示详细的出错信息: 菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选
- 本文实例讲述了Django框架使用富文本编辑器Uedit的方法。分享给大家供大家参考,具体如下:Uedit是百度一款非常好用的富文本编辑器一
- MySQL分页分析原理及提高效率PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”E
- 前言通常执行 python 程序要有相应的 Python 环境,但某些特定场景下,我们可能并不愿意这么麻烦的去配置这些环境(比如将写好的脚本
- 前言:本文的主要内容是介绍Python中 if 语句及其使用,包括条件测试、if -else 语句、if -elif-else 语句以及使用
- MySQLMySQL的特点1、性能卓越,服务稳定,很少出现异常宕机;2、开放源代码无版本制约,自主性及使用成本低;3、历史悠久,社区和用户非