当他们是Caffe和Theano时,我正在努力学习(和比较)不同的深度学习框架。
http://caffe.berkeleyvision.org/gathered/examples/mnist.html
和
http://deeplearning.net/tutorial/lenet.html
我按照教程在MNIST数据集上运行这些框架。但是,我注意到在准确性和性能方面存在很大差异。
对于Caffe来说,准确度达到约97%的速度非常快。事实上,完成程序只需5分钟(使用GPU),测试集的最终精度超过99%。多么令人印象深刻!
然而,在Theano上,它更加贫穷。我花了超过46分钟(使用相同的GPU),只是为了达到92%的测试性能。
我很困惑,因为它在相同数据集上运行相对相同架构的框架之间不应该有太多差异。
所以我的问题是。 Caffe报告的准确度数字是测试集上正确预测的百分比吗?如果是的话,是否有任何解释?
感谢。
答案 0 :(得分:6)
Theano和Caffe的例子并不完全相同。我能想到的两个关键差异是Theano示例使用sigmoid / tanh激活函数,而Caffe教程使用ReLU激活函数,而Theano代码使用普通minibatch gradient descent,而Caffe使用momentum optimiser。这两种差异都会显着影响网络的培训时间。使用ReLU装置可能也会影响准确性。
请注意,Caffe是一个深度学习框架,已经为许多常用的东西(如动量优化器)提供了现成的功能。另一方面,Theano是一个符号数学库,可用于构建神经网络。但是,它不是一个深入的学习框架。
您提到的Theano教程是了解卷积和其他神经网络在基本级别上的工作原理的绝佳资源。但是,实施所有最先进的调整将非常麻烦。如果您想快速获得最先进的结果,最好使用现有的深度学习框架之一。除了Caffe之外,还有许多基于Theano的框架。我知道keras,blocks,pylearn2以及我个人最喜欢的lasagne。