使用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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