李沫《动手学习深度学习》课程学习
| 需要预备的知识 | 原因 | 重点 |
|---|---|---|
| 线性代数 | 处理表格数据 | 矩阵运算 |
| 微积分 | 决定以何种方式调整参数 | 损失函数(loss function)—— 衡量“模型有多糟糕”这个问题的分数 梯度(gradient)—— 连结一个多元函数对其所有变量的偏导数,简单理解就是求导 |
| 概率 | 在不确定的情况下进行严格的推断 |
目录
2.1. 数据操作——张量
一个名词——张量(tensor),指n维数组,其中具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix)
2.1.1. 入门
库名:torch
| 函数名 | 作用 | 例子 | 例子意义 | 结果 |
|---|---|---|---|---|
| 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]]) | 指定张量 | ![]() |
| 函数名 | 作用 | 例子 | 结果 |
|---|---|---|---|
| shape | 访问张量(沿每个轴的长度)的形状 | x.shape | torch.Size([12]) |
| size() | 访问张量(沿每个轴的长度)的形状 | x.size() | torch.Size([12]) |
| numel() | 张量中元素的总数 | x.numel() | 12 |
| reshape() | 改变一个张量的形状而不改变元素数量和元素值 | x.reshape(3,4) |
|
注:len()函数二维张量时结果与numel()函数相同,三维就不同了
2.1.2. 运算符
——按元素(elementwise)运算
对于任意具有相同形状的张量, 常见的标准算术运算符(+、-、*、/和**)都可以被升级为按元素运算。 我们可以在同一形状的任意两个张量上调用按元素操作。
| 程序中运算函数 |
|---|

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





最低0.47元/天 解锁文章
2620





