PyTorch中的张量数据类型

写在前面:

这篇博文是一个pytorch初学者的整理笔记,关于PyTorch中的张量数据类型及其代码示例的内容,如有不对还请大家批评指正。

注意:

代码中的# In

# In

是输入的代码;

代码中的# Out

# Out

是输出的结果,只是为了方便展示,写在了一起。


目录

1.类型

2.pytorch中张量的语法

3.类型检验

4.创建Tensor的代码示例

(1)0维Tensor(标量的表示)

(2)1维Tensor

(3)2维Tensor

(4)3维Tensor

(5)4维Tensor


1.类型

对于python中的所有数据类型pyTorch都有一一的对应(除了string类型);

对于string类型,有两种编码方法:

2.pytorch中张量的语法

 

3.类型检验

 三种方法:

# 法一
a.type()
# 法二
type(a)
# 法三
isinstance(a, torch.FloatTensor)  # 返回值为一个布尔值

小技巧:x.cuda()会返回一个gpu上的引用

举例:

# In
isinstance(data, torch.cuda.DoubleTensor)
# Out
False

# In
data = data.cuda()

# In
isinstance(data, torch.cuda.DoubleTensor)
# Out
True

4.创建Tensor的代码示例

(1)0维Tensor(标量的表示)

注意:pytorch0.3版本以前的没有0维张量的表示,统一都是1维

创建标量的举例:

# In
torch.tensor(1.)  # 标量1.0
# Out
tensor(1.)

# In
torch.tensor(1.3)  # 标量1.3
# Out
tensor(1.300)

标量类型的检验:

# In
a = torch.tensor(2.2)  # 标量1.0

# In
a.shape
# Out
torch.Size([])

# In
len(a.shape)
# Out
0

# In
a.size()
# Out
torch.Size([])

(2)1维Tensor

##############法一######################
# 注意:.tensor接受的是数据的内容
# In
torch.tensor([1.1])  # 一维数据
# Out
tensor([1.1000])

# In
torch.tensor([1.1, 2.2])  
# Out
tensor([1.1000, 2.2000])

###############法二#######################
# 注意:.FloatTensor接受的是数据的shape
# In
torch.FloatTensor(1)  # 一维数据
# Out
tensor([3.2239e-25])

# In
torch.FloatTensor(2)  # 一维数据
# Out
tensor([3.2239e-25, 4.5925e-41])

###############法三#######################
# 数组从numpy引入
# In
data = np.ones(2)
# In
data
# Out
array([1., 1.])

# In
torch.from_numpy(data)  # 数组从numpy引入的语法
# Out
tensor([1., 1.], dtype=torch.float64)

(3)2维Tensor

# In
a = torch.randn(2, 3)  # 一维数据
# In
a
# Out
tensor([[-0.4423, 0.5949, 1.1440],
       [-2.0935, 0.2051, 1.2781]])

# In
a.shape 
# Out
torch.Size([2, 3])

# In
a.size(0)
# Out
2

# In
a.size(1)
# Out
3

# In
a.shape[1]
# Out
3

(4)3维Tensor

# In
a = torch.rand(1, 2, 3)  # 一维数据
# In
a
# Out
tensor([[[0.0764, 0.2590, 0.9816], [0.6789, 0.1568, 0.7919]]])

# In
a.shape 
# Out
torch.Size([1, 2, 3])

# In
a[0]
# Out
tensor([[0.0764, 0.2590, 0.9816], [0.6789, 0.1568, 0.7919]])

# In
a.size(1)
# Out
3

# In
list(a.shape)
# Out
[1, 2, 3]

(5)4维Tensor

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值