1. python中的数据类型与pytorch中的数据类型
python中的Int类型、float类型、Int array类型和Float array类型在pytorch中分别对应于IntTensor类型、FloatTensor类型、IntTensor[一维, 二维...]类型和FloatTensor[一维, 二维...]类型。
而python中的string类型在pytorch中有两种表示方式:一种是One-hot类型、一种是Enbedding类型。
查看编码方式
首先引入pytorch包
import torch
构建一个2行3列呈高斯分布的矩阵
a = torch.randn(2, 3)
输出结果
tensor([[-0.0051, 1.7796, -0.6198],
[-0.1944, 1.5188, 1.1523]])
显示a的类型:
print(type(a))
输出结果
<class 'torch.Tensor'>
换一种方式输出a的类型
print(a.type())
输出结果
torch.FloatTensor
可以看出a为浮点数类型
也可以使用代码来确认a的类型
print(isinstance(a, torch.FloatTensor))
输出结果为
True
若想确认a是否为整点数类型
print(isinstance(a, torch.IntTensor))
显然输出结果为
False
需要注意有时为实现加速,将任务放在cuda上运行,而即便是相同的数据,在cpu上运行和在cuda上运行是完全不一样的。
2. Tensor中最简单的类型:标量
标量应用最多的地方是用来计算Loss。
可以用torch.tensor方法表示标量
b = torch.tensor(1.)
print(b)
输出结果为
tensor(1.)
为查看数据的shape,可以用代码
print(a.shape)print(b.shape)
分别输出结果为
torch.Size([2, 3])
torch.Size([])
若想检验a和b的长度,输入代码
print(len(a.shape))
print(len(b.shape))
输出结果
2
0
若想表示出1维(dim=1)的张量,则需要在参数前加入方括号
c = torch.tensor([1.1])
print(c)
print(c.shape)
输出结果为
tensor([1.1000])
torch.Size([1])
又如
d = torch.tensor([1.1, 2.2])
print(d)
print(d.shape)
输出结果为
tensor([1.1000, 2.2000])
torch.Size([2])
前面都是制定数据,如果只指定数据维度的话
e = torch.FloatTensor(1)
print(e)
print(e.shape)
这里的1即表示指定维度为1
输出结果为
tensor([8.9082e-39])
torch.Size([1])
除用torch.tensor表示,也可以用numpy来表示
先引入numpy包
f = np.ones(1)
print(f)
print(f.shape)
结果为
[1.]
(1,)
又有从numpy导入到pytorch的代码
f = np.ones(1)
g = torch.from_numpy(f)
print(g)
print(g.shape)
结果为
tensor([1.], dtype=torch.float64)
torch.Size([1])
下节将介绍二维、三维标量的构建方法和如何应用。
本文分享自 python pytorch AI机器学习实践 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!