2

我正在尝试学习(和比较)不同的深度学习框架,当时它们是 Caffe 和 Theano。

http://caffe.berkeleyvision.org/gathered/examples/mnist.html

http://deeplearning.net/tutorial/lenet.html

我按照教程在 MNIST 数据集上运行这些框架。但是,我注意到在准确性和性能方面存在很大差异。

对于 Caffe,准确率提高到 97% 的速度非常快。事实上,完成程序(使用 GPU)只需要 5 分钟,在测试集上的最终准确率超过 99%。多么令人印象深刻!

但是,在 Theano 上,它要差得多。我花了超过 46 分钟(使用相同的 GPU),才达到 92% 的测试性能。

我很困惑,因为在相同数据集上运行相对相同架构的框架之间应该没有太大区别。

所以我的问题是。Caffe 报告的准确率是测试集上正确预测的百分比吗?如果是这样,对这种差异有什么解释吗?

谢谢。

4

1 回答 1

6

Theano 和 Caffe 的示例不是完全相同的网络。我能想到的两个关键区别是 Theano 示例使用 sigmoid/tanh 激活函数,而 Caffe 教程使用ReLU激活函数,Theano 代码使用普通小批量梯度下降,而 Caffe 使用动量优化器。这两种差异都会显着影响网络的训练时间。并且使用 ReLU 单元也可能会影响准确性。

请注意,Caffe 是一个深度学习框架,它已经为许多常用的东西(如动量优化器)提供了现成的功能。另一方面,Theano 是一个符号数学库,可用于构建神经网络。但是,它不是一个深度学习框架。

您提到的 Theano 教程是了解卷积和其他神经网络如何在基本层面上工作的绝佳资源。但是,实施所有最先进的调整会很麻烦。如果您想快速获得最先进的结果,最好使用现有的深度学习框架之一。除了 Caffe,还有很多基于 Theano 的框架。我知道kerasblockspylearn2和我个人最喜欢的千层面

于 2016-02-16T14:11:57.337 回答