我是靠谱客的博主 耍酷蚂蚁,最近开发中收集的这篇文章主要介绍Tensor类型_CodingPark编程公园Tensor类型知识补充,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Tensor类型

  • 普通类型 tensor
  • 直接生成 tensor
  • transforms.ToTensor()
    下载好的数据一般是numpy格式,转换成Tensor
# -*- encoding: utf-8 -*-
import torch
import torchvision

'''
普通类型 ???? tensor
'''
a = [[[2, 1, 3],
      [2, 0, 7]],
     [[1, 6, 8],
      [2, 6, 3]]]

a = torch.tensor(a, dtype=torch.long)
print(type(a))  # <class 'torch.Tensor'>
b = [[[2, 1, 3],
      [2, 0, 7]],
     [[1, 6, 8],
      [2, 6, 3]]]
b = torch.LongTensor(b)
print(type(b))  # <class 'torch.Tensor'>


print('-----------------------')
'''
????直接生成tensor
'''
# 指定生成
y = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
print(type(y))  # <class 'torch.Tensor'>

# 随机生成
z = torch.rand(3, 5)
print(type(z))  # <class 'torch.Tensor'>


print('-----------------------')
'''
????torchvision.transforms.ToTensor():下载好的数据一般是numpy格式,转换成Tensor
'''
train_loader = torch.utils.data.DataLoader(  # DataLoader批量处理  datasets加载一张
    torchvision.datasets.MNIST('mnist_data', train=True, download=True,  # datasets加载 Mnist 数据集
                               transform=torchvision.transforms.Compose([  # 转化
                                   torchvision.transforms.ToTensor(),
                                   torchvision.transforms.Normalize((0.1307,), (0.3081,))  # 均值是0.1307,
                                   # 标准差是0.3081,这些系数都是数据集提供方计算好的数据
                               ])), batch_size=512, shuffle=True
)  # batch_size=batch_size:表示一次加载多少张图片# shuffle = True 加载的时候做一个随机的打散


知识补充

torch.Tensor和torch.tensor的区别

在这里插入图片描述

  • torch.Tensor(data)是将输入的data转化torch.FloatTensor

  • torch.tensor(data):(当你未指定dype的类型时)将data转化为torch.FloatTensor、torch.LongTensor、torch.DoubleTensor等类型,转化类型依据于data的类型或者dtype的值

  • a = torch.Tensor(2, 3)可以 ✅ | a = torch.tensor(2, 3)不可以 ❌
    在这里插入图片描述


import torch
 
tensor = torch.randn(3, 5)
print(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]


 
# torch.long() 将tensor投射为long类型
long_tensor = tensor.long()
print(long_tensor)
 0 -1  0  0 -3
 0  0  0  0  0
 1  0 -2  0  0
[torch.LongTensor of size 3x5]

 
 
# torch.half()将tensor投射为半精度浮点类型
half_tensor = tensor.half()
print(half_tensor)
-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]


 
# torch.int()将该tensor投射为int类型
int_tensor = tensor.int()
print(int_tensor)
0 -1  0  0 -3
0  0  0  0  0
1  0 -2  0  0
[torch.IntTensor of size 3x5]



 
# torch.double()将该tensor投射为double类型
double_tensor = tensor.double()
print(double_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.DoubleTensor of size 3x5]



 
# torch.float()将该tensor投射为float类型
float_tensor = tensor.float()
print(float_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]




 
# torch.char()将该tensor投射为char类型
char_tensor = tensor.char()
print(char_tensor)
 0 -1  0  0 -3
 0  0  0  0  0
 1  0 -2  0  0
[torch.CharTensor of size 3x5]





 
# torch.byte()将该tensor投射为byte类型
byte_tensor = tensor.byte()
print(byte_tensor)
   0  255    0    0  253
   0    0    0    0    0
   1    0  254    0    0
[torch.ByteTensor of size 3x5]



 
# torch.short()将该tensor投射为short类型
short_tensor = tensor.short()
print(short_tensor)
 0 -1  0  0 -3
 0  0  0  0  0
 1  0 -2  0  0
[torch.ShortTensor of size 3x5]


其中,torch.Tensortorch.randtorch.randn 均默认生成 torch.FloatTensor型

更多参考

????PyTorch张量超详细介绍(数据类型、生成、操作、计算)
https://blog.csdn.net/See_Star/article/details/109120045

在这里插入图片描述

最后

以上就是耍酷蚂蚁为你收集整理的Tensor类型_CodingPark编程公园Tensor类型知识补充的全部内容,希望文章能够帮你解决Tensor类型_CodingPark编程公园Tensor类型知识补充所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部