手动实现的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、评估模型结果
网友评论