【动手学深度学习】 2预备知识

本文概述了学习《动手学习深度学习》课程时需要掌握的基础知识,包括线性代数的矩阵运算、微积分的梯度与损失函数、概率在不确定性推理中的应用,以及PyTorch中的张量操作、数据预处理和核心概念如广播机制、索引切片等。通过实例讲解,读者将熟悉数据操作、张量概念、微积分在优化中的角色,以及如何利用自动微分技术加速学习过程。

李沫《动手学习深度学习》课程学习

需要预备的知识 原因 重点
线性代数 处理表格数据 矩阵运算
微积分 决定以何种方式调整参数

损失函数(loss function)—— 衡量“模型有多糟糕”这个问题的分数

梯度(gradient)—— 连结一个多元函数对其所有变量的偏导数,简单理解就是求导

概率 在不确定的情况下进行严格的推断

目录

2.1. 数据操作——张量

2.1.1. 入门

2.1.2. 运算符

2.1.3. 广播机制

 2.1.4. 索引和切片

2.1.5. 节省内存

2.1.6. 转换为其他Python对象

2.1.8. 练习

2.2. 数据预处理

2.3. 线性代数

2.3.1. 标量

2.3.2. 向量

2.3.3. 矩阵

2.3.4. 降维

2.3.4.1. 非降维求和——轴数不变

 2.3.5. 练习​编辑

2.4. 微积分

2.5. 自动微分

2.6. 概率


2.1. 数据操作——张量

一个名词——张量(tensor),指n维数组,其中具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix)

多维张量的几何理解 - 简书 (jianshu.com)

张量的几何理解

2.1.1. 入门

库名:torch

pytorch中基本的数值计算、张量创建
函数名 作用 例子 例子意义 结果
arange() 创建行向量 torch.arange(12) 创建了一个包含以0开始的前12个整数的行向量
tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
zeros() 设置张量所有元素均为0 torch.zeros(2,3,4) 创建一个形状为(2,3,4)的张量,其中所有元素都设置为0

ones() 设置张量所有元素均为1 torch.ones(2,3,4) 创建一个形状为(2,3,4)的张量,其中所有元素都设置为1
randn() 随机初始化张量中参数的值 torch.randn(3,4) 形状为(3,4)的张量。 其中的每个元素都从均值为0、标准差为1的标准高斯分布(正态分布)中随机采样。
tensor() 提供包含数值的Python列表(或嵌套列表),来为所需张量中的每个元素赋予确定值。 在这里,最外层的列表对应于轴0,内层的列表对应于轴1。 torch.tensor([[2,1,4,3],[1,2,3,4],[4,3,2,1]]) 指定张量
张量属性,设x=tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
函数名 作用 例子 结果
shape 访问张量(沿每个轴的长度)的形状 x.shape
torch.Size([12])
size() 访问张量(沿每个轴的长度)的形状 x.size()
torch.Size([12])
numel() 张量中元素的总数 x.numel()
12
reshape() 改变一个张量的形状而不改变元素数量和元素值 x.reshape(3,4)

 
3维张量的张量属性实例
注:len()函数二维张量时结果与numel()函数相同,三维就不同了

2.1.2. 运算符

——按元素(elementwise)运算

对于任意具有相同形状的张量, 常见的标准算术运算符(+-*/**)都可以被升级为按元素运算。 我们可以在同一形状的任意两个张量上调用按元素操作。

运算函数(部分不用再导入包)
程序中运算函数
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值