Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Caffe:培训、验证和测试拆分_Python_Machine Learning_Neural Network_Caffe_Conv Neural Network - Fatal编程技术网

Python Caffe:培训、验证和测试拆分

Python Caffe:培训、验证和测试拆分,python,machine-learning,neural-network,caffe,conv-neural-network,Python,Machine Learning,Neural Network,Caffe,Conv Neural Network,我使用caffe已经有一段时间了,取得了一些成功,但我注意到在示例中,在数据集上只有TRAIN和TEST阶段的双向分割,其中TEST集似乎起到了验证集的作用 理想情况下,我希望有三个测试集,这样一旦模型经过训练,我就可以保存它并在一个全新的测试集上进行测试-存储在一个完整的单独lmdb文件夹中。有人有过这样的经历吗?谢谢。区分验证和测试意味着可以将hyperparameters调整到验证集,而测试集没有以任何方式进行任何调整。 caffe只优化权重,因为测试只是用于评估,所以它完全按照预期进行

我使用caffe已经有一段时间了,取得了一些成功,但我注意到在示例中,在数据集上只有
TRAIN
TEST
阶段的双向分割,其中
TEST
集似乎起到了验证集的作用


理想情况下,我希望有三个测试集,这样一旦模型经过训练,我就可以保存它并在一个全新的测试集上进行测试-存储在一个完整的单独lmdb文件夹中。有人有过这样的经历吗?谢谢。

区分验证和测试意味着可以将hyperparameters调整到验证集,而测试集没有以任何方式进行任何调整。
caffe
只优化权重,因为测试只是用于评估,所以它完全按照预期进行

假设在解算器优化运行之间调整超参数。传递给caffe进行测试的lmdb实际上就是验证集。如果您已经完成了超参数的调整,并使用lmdb进行了一次以上的解算器优化,以用于保存以前运行中从未使用过的数据的测试。最后一个lmdb是您的测试集

因为caffe不优化超参数,所以它的测试集就是它本身,一个测试集。可以围绕迭代超参数值的解算器优化调用编写一些python代码。完成后,它可以在一个新的lmdb中交换看不见的数据,告诉您网络的通用性如何


我不建议修改caffe以获得明确的val/测试区别。您甚至不必为解算器和网络定义设置prototxt文件。您只需将val lmdb移到其他地方,然后使用
shutil.copy(src,dst)

将测试lmdb移到它的位置,就可以在最后完成val/test交换。谢谢,这很有意义。我不确定是否要使用shutil复制现有数据库,您是否知道如何将经过培训的caffe模型指向新数据库?谢谢。@ypx,我有一个问题要问你清楚一点。在针对MNIST数据集的caffe教程中,“MNIST测试级别数据库”实际上是测试数据集还是验证数据集?caffe不区分测试和验证。验证集意味着您从培训集中排除了一部分数据,但试图通过更改超参数(例如学习率、更多隐藏节点等)来提高准确性/丢失率。测试集是第三个子集,它告诉您网络在您选择的最佳超参数配置上有多好。@ypx:非常感谢。正如您所指出的,我创建了3个数据集。列车lmdb、val lmdb和测试lmdb。我使用train/val数据集进行了培训。现在我不知道如何获得测试集的性能。我是否需要从一开始就进行培训/这次测试,并将结果与以前的培训进行比较?(这没有意义!)或者使用train/val阶段预先训练的模型,然后在新的测试集上测试。如果这是后一个,我怎么做?