pytorch实现线性回归、softmax分类、多层感知器分类学习笔记

手动实现的pytorch知识点:

一、定义变量(Tensor对象)

    1、torch.ones、torch.zeros、torch.randn等函数

    2、通过torch.tensor将numpy变量转换为torch的tensor变量

二、Tensor对象的重要属性和方法

    1、requires_grad属性,为True时充当tensorflow中的Variable,为False时充当tensorflow中的placeholder。

    2、backward方法,计算该Tensor对象对其自变量Tensor的梯度,调用backward方法后,其自变量的grad属性会更新。

三、常用初始化函数

       torch.nn.init.constant_(tensor, val)

       torch.nn.init.normal_(tensor, mean=0, std=1)

       torch.nn.init.xavier_uniform_(tensor, gain=1)

四、辅助类

       1、 torch.utils.data.TensorDataset 将tenor对象转换为dataset对象,将features和labels转换为tuple(feature,label),作为DataLoader的数据源

       2、torch.utils.data.DataLoader 生成批量数据迭代器

简洁实现的pytorch知识点:

一、基础类

      1、torch.nn.Module:  所有模型的基类,通过重写forward方法可以自定义模型

      2、torch.nn.Linear:   现有的线性模型

      3、torch.nn.Sequential:  将多个模型顺序叠加

      4、torch.nn.CrossEntropyLoss:  交叉熵损失函数,用多分类问题

      5、torch.optim.SGD: 优化函数之一(随机梯度下降),初始化是接受模型的parameters属性,通过zero_grad()清理parameters的grad,通过step更新parameters。

pytorch编码基本步骤:

      一、定义变量    

              1、现有模型如torch.nn.Linear不需要自己定义变量,只需要传入超参数

              2、手动实现需要自己定义变量,就是将Tensor

      二、定义模型

                模型可以理解为parameters(模型参数、Variable)与input(features)的运算关系,输出output

      3、定义损失函数

                损失函数可以理解为模型output与labels的运算关系,是对output与label差异的度量。

      4、生成数据迭代器,训练模型

               训练过程就是迭代更新parameter(模型参数、Variable)的过程。

               需要理解其中的epoch和batch,epoch是所有样本用于训练的次数,batch时每次用多少个样本去训练。

      5、评估模型结果

                

你可能感兴趣的:(pytorch实现线性回归、softmax分类、多层感知器分类学习笔记)