阅读 75

pytorch多标签分类,numpy 线性回归

简化Softmax回归简化Softmax回归获取和读取数据定义及初始化模型Softmax和交叉熵损失函数定义优化算法训练模型总结

Softmax回归的简洁实现

在前篇(线性回归的简洁实现)中,我们了解了使用Pytorch实现模型的便利性。 那么,让我们再次使用Pytorch实现softmax回归模型。 首先,导入所需的包或模块。

importtorchfromtorchimportnnfromtorch.nnimportinitimportnumpyasnpimportsys.path.append ' . ' ) import D2 lzh _ pytorrrizrimatintimportttinatstinathtththtttesys

batch_size=256train_iter,test _ ITER=d2l.load _ data _ fashion _ Mn ist (batch _ size ) )定义和初始化模型为3.4节) sosot

num_inputs=784 num_ outputs=10 classlinearnet (nn.module ) :def_init_(self,num _ inputs,num _ )。 self(_init_ () self.linear=nn.linear ) num_inputs,num_outputs ) defforward ) self,x ) 3360#x 28 ) y=

#该函数被保存在d2lzh_pytorch包中,并且稍后被称为classflattenlayer(nn.module ) :def_init_(self ) 3360super ) flattenlayer *,) returnx.view ) x.shape[0],-1)这样可以更容易地定义模型。

fromcollectionsimportordereddictnet=nn.sequential (# flatten layer ),#nn.linear ) num_inputs,num_outputs ) FlattenLayer () )、linear ()、nn.linear (num _ inputs,num_outputs ) )以及正态分布随机初始化模型的平均值为0,标准偏差为0.01

init.normal_(net.linear.weight,mean=0,std=0.01 ) init.constant_(net.linear.bias,val=0) softmant 因此,PyTorch提供包括softmax运算和交叉熵损失计算的函数。 数值的稳定性提高。

loss=nn.CrossEntropyLoss ()定义了优化算法,使用学习率为0.1的小批量随机梯度下降作为优化算法。

optimizer=torch.optim.SGD (net.parameters (,lr=0.1 )训练模型然后使用上一节中定义的训练函数训练模型。

num_epochs=5D2L.train_ch3(net,train_iter,test_iter,loss,num_Epochs,batch_size,None,None,ne

epoch 1,loss 0.0031,train acc 0.745,test acc 0.790epoch 2,loss 0.0022,train acc 0.812,test acc 0.807epoch 3,loss 0.0021,train test acc 0.807epoch 3, 由l test acc 0.806epoch 4、loss 0.0020、train acc 0.832、test acc 0.810epoch 5、loss 0.0019、train acc 0.838和test acc 0.823汇总PyTorch提供在更多情况下,使用具有更多函数的PyTorch可以更简洁地实现softmax回归。 注:本节中除代码外与原书基本相同,原书传送门

本人出于学习的目的,引用本书内容,非商业用途,推荐大家阅读此书,一起学习!!!

加油!

感谢!

努力!


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐