如何强制caffe读取所有培训数据?

2024-09-28 20:55:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用,但输入仍有问题。在

这是我的解算器.prototxt公司名称:

train_net: "auto_train.prototxt"
test_net: "auto_test.prototxt"
test_iter: 800
test_interval: 20
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
lr_policy: "inv"
gamma: 0.0001
power: 0.75
display: 100
max_iter: 10000
snapshot: 5000
snapshot_prefix: "sed"
solver_mode: GPU

下面是正在运行的python脚本:

^{pr2}$

数据是手动生成的,每个数据是一个1x256向量,所有相同的标度值是8*label value。也就是说,带有标签3的基准面是[24,24,24,24….,24,24]。我有8个标签和8万个数据。在

我的问题是,如果我把数据放入leveldb,标签顺序是0,1,2,3,4,5,6,7,8,0,1,2,3,4,5...,caffe可以很好地训练网络。但是如果我按0,0,...,0,0,1,1,1,...,1,1,2,2,...排序,caffe就不能学习了。如果我减少解算器.prototxt对于100,caffe总是说output label是0。在

似乎caffe并没有阅读所有的训练数据,只是阅读了前面的一些东西。但我找不到任何描述它的东西,除了训练批。在

事实上,如果我把培训批量增加到80000,caffe的培训效果会再次提高。虽然它很慢,也不是所谓的批处理。在

有人能帮忙吗?谢谢您!在


Tags: 数据test名称autonetsnapshot公司train
1条回答
网友
1楼 · 发布于 2024-09-28 20:55:27

以随机顺序输入数据总是一个很好的做法:如果数据是以“排序”的方式输入的,则梯度将以每批非常退化的方向进行,从而产生较差的训练结果。在

caffe在培训期间“看到”的培训示例的数量是max_iter*batch_size,因此如果您将这两个参数设置为超过您拥有的培训示例的数量,那么您应该覆盖培训期间拥有的所有数据。在

相关问题 更多 >