模型中的超参数(batch_size、epoch、batch)

复制代码
# epoch:
1个epoch指用训练集中的全部样本训练一次,此时相当于batch_size 等于训练集的样本数。
如果epoch=50,总样本数=10000,batch_size=20,则需要迭代500次。
# iteration: 1次iteration即迭代1次,也就是用batch_size个样本训练一次。每一次迭代得到的结果都会被作为下一次迭代的初始值.
# batch_size: 每批数据量的大小.用SGD的优化算法进行训练,也就是1 次iteration一起训练batch_size个样本,计算它们的平均损失函数值,来更新一次参数。 # 举例: 一个excel中包括200个样本(数据行)的数据,选择batch_size=5, epoch=1000, 则batch=40个,每个batch有5个样本,一次epoch将进行40个batch或40次模型参数更新,1000个epoch,模型将传递整个数据集1000次,在整个训练过程中,总共有40000次batch. # 引用例子: mnist 数据集有 60000 张训练数据,10000 张测试数据。现在选择 Batch_Size = 100 对模型进行训练。 每个 epoch 要训练的图片数量:60000(训练集上的所有图像) 训练集具有的 batch 个数: 60000/100=600 每个 epoch 需要完成的 batch 个数: 600 每个 epoch 具有的 Iteration 个数: 600(完成一个batch,相当于参数迭代一次) 每个 epoch 中发生模型权重更新的次数:600 训练 10 个epoch后,模型权重更新的次数: 600*10=6000 不同epoch的训练,其实用的是同一个训练集的数据。第1个epoch和第10个epoch虽然用的都是训练集的60000图片,但是对模型的权重更新值却是完全不同的。因为不同epoch的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。 总共完成30000次迭代,相当于完成了 30000/600=50 个epoch batch_size的选择原则:batch_size越大,batch越少,需要迭代的次数越少,训练时间越短。 batch_size越小,batch数量越多,耗时久,计算机占用内存大。
复制代码

 

posted @   黑无常  阅读(12126)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2019-11-04 小程序 1
点击右上角即可分享
微信分享提示