美文网首页
pytorch实现线性回归、softmax分类、多层感知器分类学

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

作者: 平常心_85d9 | 来源:发表于2020-02-14 16:42 被阅读0次

    手动实现的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分类、多层感知器分类学

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