pytorch: tensor类型的构建与相互转换实例

作者:JNingWei 时间:2023-06-14 09:22:57 

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

标签:pytorch,tensor,转换
0
投稿

猜你喜欢

  • Python基础之字典常见操作经典实例详解

    2022-09-01 15:59:18
  • python学习实操案例(五)

    2023-08-22 01:52:43
  • Python队列、进程间通信、线程案例

    2021-10-23 16:43:03
  • js获取指定字符前/后的字符串简单实例

    2024-05-02 17:31:10
  • vue 页面卡死,点击无反应的问题及解决

    2024-04-27 16:04:21
  • 解析SQLServer任意列之间的聚合

    2024-01-17 12:48:29
  • 大容量csv快速内导入sqlserver的解决方法(推荐)

    2024-01-13 00:44:12
  • Javascript调用XML制作连动下拉框

    2007-09-17 12:55:00
  • 解决python3 网络请求路径包含中文的问题

    2023-07-09 00:14:23
  • go面向对象方式操作JSON库实现四则运算

    2024-05-22 10:12:47
  • ORACLE常见错误代码的分析与解决(三)

    2010-07-31 12:45:00
  • 使用Python脚本在Linux下实现部分Bash Shell的教程

    2023-10-02 06:55:28
  • 解决Python 命令行执行脚本时,提示导入的包找不到的问题

    2022-05-22 23:58:29
  • django template实现定义临时变量,自定义赋值、自增实例

    2021-05-24 09:16:46
  • Python变量格式化输出实现原理解析

    2023-02-12 23:13:51
  • django轻松使用富文本编辑器CKEditor的方法

    2022-01-21 17:11:57
  • 详解Angular之constructor和ngOnInit差异及适用场景

    2024-05-11 09:18:16
  • JavaScript 数据结构之字典方法

    2024-04-16 09:28:22
  • 使用mss2sql工具将SqlServer转换为Mysql全记录

    2024-01-24 11:59:37
  • 一次Mysql使用IN大数据量的优化记录

    2024-01-29 07:49:19
  • asp之家 网络编程 m.aspxhome.com