机器学习|PyTorch简明教程上篇-人工智能
扫码关注官方订阅号
前面几篇文章介绍了特征归一化和张量,接下来开始写两篇PyTorch简明教程,主要介绍PyTorch简单实践。
(2)torch.linSpace(-1,1,101,requires_grad=False)用于在指定的区间内生成一组等间隔的数值,该函数接受三个参数:起始值、终止值和元素个数,返回一个张量,其中包含了指定个数的等间隔数值;
使用opTim.SGD(Model.parameters(),lr=0.01,momentum=0.9)可以实现随机梯度下降(StochasticGradientDescent,SGD)优化算法
将训练集通过批量大小拆分,循环100次
(7)接下来是训练函数train,用于训练一个神经网络模型,具体来说,该函数接受以下参数:
(8)train是PyTorch训练过程中常用的方法,其步骤如下:
(9)print("轮次=%d,损失值=%s"%(i1,cost/num_batches))最后打印当前训练的轮次和损失值,上述的代码输出如下:
(3)build_model内部实现:torch.nn.Sequential(torch.nn.Linear(input_dim,output_dim,bias=False))用于构建一个包含一个线性层的神经网络模型,模型的输入特征数量为input_dim,输出特征数量为output_dim,且该线性层没有偏置项,其中n_classes=10表示输出10个分类;重写后:(3)build_model内部实现:使用torch.nn.Sequential(torch.nn.Linear(input_dim,output_dim,bias=False))来构建一个包含一个线性层的神经网络模型,该模型的输入特征数量为input_dim,输出特征数量为output_dim,且该线性层没有偏置项。其中n_classes=10表示输出10个分类;
(4)其他的步骤就是定义损失函数,梯度下降优化器,通过batch_size将训练集拆分,循环100次进行train;
使用optim.SGD(model.parameters(),lr=0.01,momentum=0.9)可以实现随机梯度下降(StochasticGradientDescent,SGD)优化算法
(6)在每一轮训练结束后,需要执行predict函数来进行预测。该函数接受两个参数model(已经训练好的模型)和teX(需要进行预测的数据)。具体步骤如下:
(7)print("Epoch%d,cost=%f,acc=%.2f%%"%(i1,cost/num_batches,100.*np.mean(predY==teY)))最后打印当前训练的轮次,损失值和acc,上述的代码输出如下(执行很快,但是准确率偏低):
(2)print("Epoch%d,cost=%f,acc=%.2f%%"%(i1,cost/num_batches,100.*np.mean(predY==teY)))最后打印当前训练的轮次,损失值和acc,上述的代码输入如下(执行时间比逻辑回归要长,但是准确率要高很多):
以上就是机器学习|PyTorch简明教程上篇的详细内容,更多请关注php中文网其它相关文章!
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright2014-2023allRightsReserved|苏州跃动光标网络科技有限公司|