记录深度学习从0开始(一)

tensor的创建与使用

学习张量是学习深度学习的基础,每个深度学习框架学习之前都要对张量有足够多的了解。本文基于pytorch深度学习框架。

张量的创建

创建张量一般使用:

torch.tensor()

张量也有类似数组一样的dtype属性

t = torch.tensor([1,2])
t.dtype

pytorch中张量的类型

数据类型dtype
32bit浮点数torch.float32或torch.float
64bit浮点数torch.float64或torch.double
16bit浮点数torch.float16或torch.half
8bit无符号整数torch.unit8
8bit有符号整数torch.int8
16bit有符号整数torch.int16或torch.short
16bit有符号整数torch.int16或torch.short
32bit有符号整数torch.int32或torch.int
64bit有符号整数torch.int64或torch.long
布尔型torch.bool
复数型torch.complex64

张量类型的转变

t = torch.tensor([1,2])
t.float()
t.double()
t.short()
t.half()

类型的转变参考上一个表格。

张量的维度与形变

张量的维度

查看张量的维度:

t.ndim()

查看张量的形状/大小:

t.shape()
t.size()

两行命令输出结果一致。
高维张量的解读

torch.size([2,2,3])

上述结果表示张量由2个2行3列的矩阵构成。

张量的形变

拉直:

t = torch.tensor([[1,2],[3,4]])
t .ndim

这是一个二维张量

t.flatten()
t.ndim

拉直后变为一维。
reshape可对张量进行任意形状的改变

t.reshape(a,b,c)

a,b,c,就是描述张量形状的参数

一些特殊的张量创建

全0张量:

torch.zeros([2,3])

tensor([[0., 0., 0.], [0., 0., 0.]])
全1张量:

torch.ones([2,3])

单位矩阵:

torch.eyes(4)

4阶单位阵

张量的深拷贝

简单的张量赋值过程会指向同一个对象。如

t = torch.tensor([1,2,3.4])
t1 = t
t1

将t赋值给了t1,此时两者皆指向同一个tensor

t[0] = 10
t

此时将t的第一个位置变成10,t1也发生改变。

t1

若想两个张量指向不同的对象

t2 = t.clone()

此时t2与t互不干扰。

一些补充

带——like函数的用法

t = torch.tensor([1,2])
t1 = torch.full_like(t,3)   #根据t的形状,填充数值3

张量转换成列表

t.tolist()
type(t)

将一维张量的数值取出

t = torch.tensor([1])
t.item()

张量的数值个数

t = torch.tensor([[1,2],[5,6]])
t.numel()
len(t)

numel返回的是4,len(t)返回的是2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值