使用Caffe训练时,文件列表是否需要排序?

在使用Caffe进行训练且不使用lmdb文件时,需要为训练和验证输入文件提供列表文件。通常这两个列表文件被命名为train.txt和val.txt。它们的结构相同,如下所示:

/path/to/a/file.jpg 0/path/to/another/file.jpg 0.../path/to/another/file.jpg M/path/to/another/file.jpg M.../path/to/another/file.jpg N/path/to/another/file.jpg N

用于N+1个类别的集合。

然后在train_val.prototxt中,train.txt和val.txt分别在TRAIN阶段和TEST阶段的段落中被引用。

我的问题是:train.txt和val.txt是否应该按类别编号排序(即按数字第二字段排序)?

提问的原因:在示例中,文件总是按类别编号排序。如果我随机排序train.txt和val.txt文件,训练不会中断——caffe.bin不会崩溃或报告警告。另一方面,我不知道caffe是否按行顺序读取train.txt和val.txt,或者是否对它们进行随机抽样。


回答:

Caffe支持按行顺序或打乱顺序:https://github.com/BVLC/caffe/blob/2a1c552b66f026c7508d390b526f2495ed3be594/src/caffe/layers/image_data_layer.cpp#L51

要启用打乱顺序,需要在ImageDataLayer中添加shuffle: true参数(https://github.com/BVLC/caffe/blob/2a1c552b66f026c7508d390b526f2495ed3be594/src/caffe/proto/caffe.proto#L810

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注