机器学习笔记

机器学习笔记

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
    28
    import 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})\)