使用caffe在mnist数据集上训练自动编码器时出了什么问题?

问题描述 投票:1回答:1

我想使用mnist数据集在caffe和nvidia-digits中训练一个简单的自动编码器。

我有:caffe:0.16.4 DIGITS:5.1 python 2.7

我使用这里提供的结构:https://github.com/BVLC/caffe/blob/master/examples/mnist/mnist_autoencoder.prototxt

然后我面临两个问题:

  • 当我使用提供的结构时,我收到此错误: Traceback (most recent call last): File "digits/scheduler.py", line 512, in run_task task.run(resources) File "digits/task.py", line 189, in run self.before_run() File "digits/model/tasks/caffe_train.py", line 220, in before_run self.save_files_generic() File "digits/model/tasks/caffe_train.py", line 665, in save_files_generic 'cannot specify two val image data layers' AssertionError: cannot specify two val image data layers
  • 当我删除“test-on-test”的图层时,我得到了一个糟糕的结果:https://screenshots.firefox.com/8hwLmSmEP2CeiyQP/localhost

问题是什么??

caffe autoencoder nvidia-digits
1个回答
1
投票

出现第一个问题是因为.prototxt有两个名为dataTEST阶段的层。使用data的第一层,即flatdata,不知道使用哪种数据(测试到训练或测试到测试)。这就是为什么当您使用TEST阶段删除其中一个数据层时,错误不会发生。编辑:我已经检查了解算器文件,它有一个test_stage参数,应该在测试文件之间切换,但它显然不适用于您的情况。

第二个问题有点难以解决。我对自动编码器的了解有限。在您的迭代过程中,您的欧几里德损失似乎变化很小;我会检查你的solver.prototxt的基本学习率并减少它。检查损失如何波动。

除此之外,对于实现低误差的时期/迭代,您是否检查过输出数据/图像?他们有道理吗?

© www.soinside.com 2019 - 2024. All rights reserved.