美文网首页
《PyTorch深度学习实践》(1)

《PyTorch深度学习实践》(1)

作者: 天涯海角之路 | 来源:发表于2020-06-06 00:13 被阅读0次

    主题

    线性回归

    总结

    1. pytorch的本质是计算图+自动求导

    2. 每个计算节点的结构被定下来需要哪些信息,这些信息作为参数传入

    3. loss最终是一个标量,才能反向传播

    4. 继承nn.Module后必须写forward()

    5. __call__()中调用forward(),使得Module是可调用对象,Pythonic风格。把输入数据以Tensor对象形式传入__call__(),返回输出数据的Tensor对象形式

    6. nn.MSELoss也是一个计算节点,与nn.Linear一样都是nn.Module的子类

    7. 优化器不是nn.Module的子类

    criterion = torch.nn.MSELoss()
    optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
    

    (1)优化器与Loss计算节点都在模型外建立。
    (2)在模型外建立Loss计算节点的两个原因,一是要对该节点传入标签信息,二是方便在训练过程中更换Loss计算方式
    (3) 在模型外建立优化器是因为要传入模型的优化参数,显然只有当模型实例化之后才能建立

    1. 更新模型参数的三段式
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    

    PyTorch深度学习的步骤

    1. Prepare dataset
    2. Desgin model using Class:inherit from nn.Module
    3. Construct loss and optimizer:using PyTorch API
    4. Training cycle:forward、backward、update

    1. Prepare dataset

    1. 输入数据的尺寸结构用mini-batch风格,一个维度是样本数n。即n*@,其中@是每个输入数据点的尺寸结构
    2. 不同维度的矩阵相乘,用广播机制复制数值。比如矩阵X的维度为(a * b * c * d),矩阵Y的维度为(c * d),XY乘积的结果矩阵维度为(a * b )

    相关文章

      网友评论

          本文标题:《PyTorch深度学习实践》(1)

          本文链接:https://www.haomeiwen.com/subject/znnwzhtx.html