pytorch tensor 创建&数据类型转换

您所在的位置:网站首页 tensor转换为数值 pytorch tensor 创建&数据类型转换

pytorch tensor 创建&数据类型转换

2024-07-09 16:01| 来源: 网络整理| 查看: 265

一.创建tensor

import torch tensor_01 = torch.tensor([ [1, 2, 3], [2, 3, 4] ]) print('\ntensor_01:\n', tensor_01, '\ntensor size:', tensor_01.size()) # 输出 # tensor_01: # tensor([[1, 2, 3], # [2, 3, 4]]) # tensor size: torch.Size([2, 3]) # 创建零tensor tensor_02 = torch.zeros([2, 3, 2, 4]) print('\ntensor_02:\n', tensor_02, '\ntensor size:', tensor_02.size()) # 输出 # tensor_02: # tensor([[[[0., 0., 0., 0.], # [0., 0., 0., 0.]], # # [[0., 0., 0., 0.], # [0., 0., 0., 0.]], # # [[0., 0., 0., 0.], # [0., 0., 0., 0.]]], # # # [[[0., 0., 0., 0.], # [0., 0., 0., 0.]], # # [[0., 0., 0., 0.], # [0., 0., 0., 0.]], # # [[0., 0., 0., 0.], # [0., 0., 0., 0.]]]]) # tensor size: torch.Size([2, 3, 2, 4]) # 创建单位tensor tensor_03 = torch.ones([2, 3]) print('\ntensor_03:\n', tensor_03, '\ntensor size:', tensor_03.size()) # 输出 # tensor_03: # tensor([[1., 1., 1.], # [1., 1., 1.]]) # tensor size: torch.Size([2, 3]) # 创建随机tensor tensor_04 = torch.rand([2, 3]) print('\ntensor_04:\n', tensor_04, '\ntensor size:', tensor_04.size()) # 输出 # tensor_04: # tensor([[0.3166, 0.6277, 0.7716], # [0.1196, 0.2075, 0.8337]]) # tensor size: torch.Size([2, 3]) # 用arange创建tensor tensor_05 = torch.arange(1, 10, 2) print('\ntensor_05:\n', tensor_05, '\ntensor size:', tensor_05.size()) # 输出 # tensor_05: # tensor([1, 3, 5, 7, 9]) # tensor size: torch.Size([5]) # 改变维度 tensor_06 = torch.arange(1, 10).reshape((3, 3)) print('\ntensor_06:\n', tensor_06, '\ntensor size:', tensor_06.size()) # 输出 # tensor_06: # tensor([[1, 2, 3], # [4, 5, 6], # [7, 8, 9]]) # tensor size: torch.Size([3, 3]) # 切片创建tensor tensor_07 = tensor_06[:2, :2] print('\ntensor_07:\n', tensor_07, '\ntensor size:', tensor_07.size()) # 输出 # tensor_07: # tensor([[1, 2], # [4, 5]]) # tensor size: torch.Size([2, 2])

二. tensor数据类型转换

三种方法:以目标转换类型为int作为示例

tensor.to(int)    此时,tensor本身不能为int类型

tensor.int()

tensor.type(torch.IntTensor)

tensor_00 = torch.rand([2, 2, 3]) * 10 # float32 print('\ntensor_00:\n', tensor_00, '\ntensor size:', tensor_00.size(), '\ntensor dtype:', tensor_00.dtype) # 输出 # tensor_00: # tensor([[[2.6750, 6.0996, 4.5382], # [1.7869, 7.5012, 9.8702]], # # [[6.2594, 8.7141, 7.7183], # [8.5369, 5.6291, 0.9405]]]) # tensor size: torch.Size([2, 2, 3]) # tensor dtype: torch.float32 tensor_01 = tensor_00.to(torch.int32) # int32 print('\ntensor_01:\n', tensor_01, '\ntensor size:', tensor_01.size(), '\ntensor dtype:', tensor_01.dtype) # 输出 # tensor_01: # tensor([[[2, 6, 4], # [1, 7, 9]], # # [[6, 8, 7], # [8, 5, 0]]], dtype=torch.int32) # tensor size: torch.Size([2, 2, 3]) # tensor dtype: torch.int32 tensor_02 = tensor_00.int() # int32 print('\ntensor_02:\n', tensor_02, '\ntensor size:', tensor_02.size(), '\ntensor dtype:', tensor_02.dtype) # 输出 # tensor_02: # tensor([[[2, 6, 4], # [1, 7, 9]], # # [[6, 8, 7], # [8, 5, 0]]], dtype=torch.int32) # tensor size: torch.Size([2, 2, 3]) # tensor dtype: torch.int32 tensor_03 = tensor_00.type(torch.IntTensor) print('\ntensor_03:\n', tensor_03, '\ntensor size:', tensor_03.size(), '\ntensor dtype:', tensor_03.dtype) # 输出 # tensor_03: # tensor([[[2, 6, 4], # [1, 7, 9]], # # [[6, 8, 7], # [8, 5, 0]]], dtype=torch.int32) # tensor size: torch.Size([2, 2, 3]) # tensor dtype: torch.int32

三.tensor转为python中list或单个数值

ll = tensor.tolist() 将tensor转换为list

num = tensor.item() 将tensor转换为数值,此时tensor必须是一个一维且仅包含一个元素的tensor

# torch to python number or list # regular tensor tensor_00 = (torch.rand([5, 2]) * 10).int() print('\ntensor_00:\n', tensor_00, '\ntensor size:', tensor_00.size(), '\ntensor dtype:', tensor_00.dtype) # 输出 # tensor_00: # tensor([[4, 3], # [0, 3], # [4, 7], # [9, 3], # [0, 9]], dtype=torch.int32) # tensor size: torch.Size([5, 2]) # tensor dtype: torch.int32 tensor2list = tensor_00.tolist() print('\ntensor2list:\n', tensor2list, '\nlist len:', len(tensor2list)) # 输出 # tensor2list: # [[4, 3], [0, 3], [4, 7], [9, 3], [0, 9]] # list len: 5 # one element tensor tensor_num = (torch.rand([1]) * 10).int() print('\ntensor_num:\n', tensor_num, '\ntensor size:', tensor_num.size(), '\ntensor dtype:', tensor_num.dtype) # 输出 # tensor_num: # tensor([5], dtype=torch.int32) # tensor size: torch.Size([1]) # tensor dtype: torch.int32 tensor2item = tensor_num.item() print('\ntensor2item:\n', tensor2item) # 输出 # tensor2item: # 5

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3