动手学深度学习-第2章预备知识
-
数据操作
张量(Numpy-ndarray,Pytorch,TensorFlow-Tensor)
torch.arange()
torch.shape
torch.numel ()张量中元素数量
torch.reshape()改变张量的形状而不改变元素数量和元素值
torch.randon()默认从均值为0 标准差为1 的标准高斯分布(正态分布)
+,-,*,/,**
torch.cat()连接求和torch.sum()
广播机制
索引
切片
内存分配
对象转换 -
数据预处理
读取数据集12345678910import
os
os.makedirs(os.path.join(
'..'
,
'data'
), exist_ok
=
True
)
data_file
=
os.path.join(
'..'
,
'data'
,
'house_tiny.csv'
)
with
open
(data_file,
'w'
) as f:
f.write(
'NumRooms,Alley,Price\n'
)
# 列名
f.write(
'NA,Pave,127500\n'
)
# 每行表示一个数据样本
f.write(
'2,NA,106000\n'
)
f.write(
'4,NA,178100\n'
)
f.write(
'NA,NA,140000\n'
)
处理缺失值
fillna(inputs.mean()) -
线性代数
张量的运算
哈达玛积:两个矩阵按元素乘法(数学符号) A*B
降维:求和-调用求和函数会沿所有的轴降低张量的维度,使它变为一个标量。 我们还可以指定张量沿哪一个轴来通过求和降低维度。
123A_sum_axis1
=
A.
sum
(axis
=
1
)
#指定axis
=
1
将通过汇总所有列的元素降维(轴
1
)。因此,输入轴
1
的维数在输出形状中消失。
平均值(mean或average)-通过将总和除以元素总数来计算平均值。
1A.mean(), A.
sum
()
/
A.numel()
非降维求和
12sum_A
=
A.
sum
(axis
=
1
, keepdims
=
True
)
sum_A
沿某个轴计算
A
元素的累积总和, 比如axis=0
(按行计算),可以调用cumsum
函数。 此函数不会沿任何轴降低输入张量的维度。1A.cumsum(axis
=
0
)
点积:相同位置的按元素乘积的和
12y
=
torch.ones(
4
, dtype
=
torch.float32)
x, y, torch.dot(x, y)
矩阵-向量积:矩阵
A
和向量x
调用torch.mv(A, x)
时,会执行矩阵-向量积矩阵-矩阵乘法:矩阵乘法看作简单地执行次矩阵-向量积,并将结果拼接在一起,形成一个<span class="math notranslate nohighlight">矩阵.
12B
=
torch.ones(
4
,
3
)
torch.mm(A, B)
范数:
第一个性质是:如果我们按常数因子缩放向量的所有元素, 其范数也会按相同常数因子的绝对值缩放:第二个性质是熟悉的三角不等式:
第三个性质简单地说范数必须是非负的:
-
微积分
拟合模型的任务分解为两个关键问题:
优化(optimization):用模型拟合观测数据的过程;
泛化(generalization):数学原理和实践者的智慧,能够指导我们生成出有效性超出用于训练的数据集本身的模型。1234567891011121314151617%
matplotlib inline
import
numpy as np
from
matplotlib_inline
import
backend_inline
from
d2l
import
torch as d2l
def
f(x):
return
3
*
x
*
*
2
-
4
*
x
def
numerical_lim(f, x, h):
return
(f(x
+
h)
-
f(x))
/
h
h
=
0.1
for
i
in
range
(
5
):
print
(f
'h={h:.5f}, numerical limit={numerical_lim(f, 1, h):.5f}'
)
h
*
=
0.1
-
概率
机器学习就是做出预测。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)