DeepLizard | PyTorch 神经网络编程系列
置顶一位大佬的学习笔记
https://www.zhihu.com/people/ji-jie-32-12/posts
学习提纲
Part 1·Section 1
Part 1· Section 2
0维张量 | 1维张量 | 2维张量 |
---|---|---|
number(数) | array(数组) | 2d-array(二维数组) |
scalar(标量) | vector(向量) | matrix(矩阵) |
tensor(张量)对应计算机的术语就是 nd-array(n维数组)
张量的三个属性——rank、axes、shape
(1)rank :张量的维度数量(阶数)
(2)Axis :某一维度的长度,也就是这一维度中的元素数量。 比如一个3x4的矩阵,rank为2,第一个维度的axis为3,第二个维度的axis为4。
(3)shape: 各个维度都有多少个元素。3*4就是这个矩阵(二阶张量)的shape
张量的秩:一个张量有多少个轴
张量的形状由每个轴长度决定
import torch
dd=[
[1,2,3],
[4,5,6],
[7,8,9]
]
t=torch.tensor(dd)
type (t)
t.shape
t.reshape(1,9)
[batch,channel,height,width]
特征图:输入颜色通道和卷积滤波器所产生的卷积的结果
将颜色通道和卷积滤波器做一个卷积运算得到一个输出通道结果 成为特征映射
t.dtype #torch.float32 数据类型
t.device #cpu 数据被分配的位置 决定给定张量计算的位置
t.layout #torch.strided 张量数据如何在内存中布局
张量之间的张量运算必须与相同数据类型的张量运算
device=torch.device('cuda:0')
张量之间的计算依赖于类型和设备
创建张量
data=np.array([1,2,3])
torch.Tensor(data) #类构造函数 在内存中创建额外数据副本
torch.tensor(data) #常用 工厂函数 接收参数输入并返回特定类型对象的函数 在内存中创建额外数据副本
torch.as_tensor(data) # 在内存中共享数据
torch.from_numpy(data) #在内存中共享数据
特殊矩阵
torch.eye(2) #单位矩阵 指定行数
torch.zeros(2,2)#零矩阵 指定每个轴长度
torch.ones(2,2)#全1张量
torch.rand(2,2)#随机张量
张量操作类型
重塑操作、元素操作、还原操作、访问操作
t.size() #张量的形状 [3,4]
t.shape #张量的形状 [3,4]
len(t.shape) #张量的秩 2
#张量中包含的元素个数 各分量值乘积
#把这个形状转换成一个张量,然后使用.prod看到这个张量包含几个分量
torch.tensor(t.shape).prod()
t.numel()#元素数量12
重塑: 只改变数据形状 压缩、解缩
分类:
06.卑微菜鸟被迫营业-AI浅学
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步