概述
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.Tensor、torch.rand、torch.randn 均默认生成 torch.FloatTensor型
更多参考
????PyTorch张量超详细介绍(数据类型、生成、操作、计算)
https://blog.csdn.net/See_Star/article/details/109120045
最后
以上就是耍酷蚂蚁为你收集整理的Tensor类型_CodingPark编程公园Tensor类型知识补充的全部内容,希望文章能够帮你解决Tensor类型_CodingPark编程公园Tensor类型知识补充所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复