pytorch 学习笔记

第一、数据的预处理
以cifar10举例,首先把cifar10数据集转换成png图片格式,把图片分类放到对应的文件夹中。其次,将这些文件按比例分成训练集,验证集和测试集。然后,将这些文件的路径和标签放到一个txt文件中。
继承dataset子类,在该子类中getite该m函数中读取数据和标签。然后在主函数中实例化该子例。最后,由dataloader函数读取数据,作为模型的真正的输入。
其中,需要对数据进行数据增强,可以用transform库的函数,进行随机剪裁,totensor,正则化等处理。


第二、搭建网络。
必须继承nn.module,让pytorch众知道这是一个模型,在module子类初始化函数中,定义设置好需要用到的组件,然后在forward中用组件去搭建网络。其中有一个很重要的函数是sequential,用这个函数进行打包操作。
接下来,进行权值初始化,这一步的作用是提高网络训练的精度和保证收敛性,否则就是一些随机数,用起来效果会很不好。
最后,进行保存模型操作,用torch.save函数进行。这样做可以用一些已经训练好的效果不错的权重,可以保存模型或模型参数,但大都保存模型参数!!!

第三、设置损失函数。
pytorch中的 十七个损失函数,十个优化器和六个学习率调整方法。
所谓的优化,就是优化网络权值使得损失函数值变小。


重点:交叉熵损失函数
交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布于预测分布之间的差异。交叉熵越小,模型预测效果越好。
KL散度:衡量两个概率分布之间的差异,表示真实概率分布和预测概率分布之间的差异,值越小表示预测结果越好。
KL散度=交叉熵-信息熵
因为交叉熵比KL散度好求,所以机器学习中常常用交叉熵损失函数来计算损失。
交叉熵往往标配一个sofmax函数,将输出概率化。


第四、tensorboardX监控可视化

tensorboard --logdir = runs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值