机器学习笔记
机器学习笔记
1. 安装Pytorch
在这里选择你的选项,然后在命令行中打pytorch
官网提供的命令,打完之后如果遇到了错误,那么考虑是不是你的python
版本过高。访问Start
Locally |
PyTorch这里来确认pytorch
是否支持你的python
版本。
2. 《动手学深度学习》笔记
2.1 数据操作
注意:两个张量如果可以广播,那么:
- 每个张量至少有一个维度。
- 迭代维度尺寸时,从尾部的维度开始,维度尺寸 或者相等, 或者其中一个张量的维度尺寸为 1 , 或者其中一个张量不存在这个维度
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28import torch
# 示例1:相同形状的张量总是可广播的,因为总能满足以上规则。
x = torch.empty(5, 7, 3)
y = torch.empty(5, 7, 3)
# 示例2:不可广播( a 不满足第一条规则)。
a = torch.empty((0,))
b = torch.empty(2, 2)
# 示例3:m 和 n 可广播:
m = torch.empty(5, 3, 4, 1)
n = torch.empty( 3, 1, 1)
# 倒数第一个维度:两者的尺寸均为1
# 倒数第二个维度:n尺寸为1
# 倒数第三个维度:两者尺寸相同
# 倒数第四个维度:n该维度不存在
# 示例4:不可广播,因为倒数第三个维度:2 != 3
p = torch.empty(5, 2, 4, 1)
q = torch.empty( 3, 1, 1)
# 示例5:a 和 b 可广播:
m = torch.arange(12).reshape(2,2,3)
n = torch.tensor(1)
2.4 微积分
- 2.4.3的梯度没有懂,尤其是涉及矩阵的部分
2.5 自动微分
2.5.1 一个标量函数如何对一个向量求导?
标量 y 对 n 维列向量 \(x = (x_1,x_2,...,x_n)^T\)求导,其结果还是一个n维列向量,结果是\((\frac {\partial y} {\partial x_1}, \frac {\partial y} {\partial x_2} ... \frac {\partial y} {\partial x_n})^T\)
标量 y 对 n 维行向量 \(x = (x_1,x_2,...,x_n)\)求导,其结果还是一个n维行向量,结果是\((\frac {\partial y} {\partial x_1}, \frac {\partial y} {\partial x_2} ... \frac {\partial y} {\partial x_n})\)