是否使用Caffe或Theano进行Moore-Penrose Pseudo逆?

时间:2015-05-09 01:46:44

标签: machine-learning matrix-multiplication theano matrix-inverse caffe

我需要使用(在应用程序中)极限学习机(ELM),它针对多个CPU或GPU进行了高度优化。由于ELM主要计算涉及Moore-Penrose伪逆和矩阵乘法,在Theano和Caffe中实现ELM的最佳选择是什么?

其次,是否可以使用其python接口在Caffe中实现一个新的学习算法(ELM)?

3 个答案:

答案 0 :(得分:1)

如果我是你,我会使用Theano,而不是Caffe。 Caffe在通用矩阵库周围编程 ,所以对于Caffe,你会尝试用螺丝刀基本上打开啤酒。 如果您明确感觉使用C ++,请查看MrShadow或任何其他基于GPU的矩阵库。

...或者只是简单地使用Theano和Python。

我不是Python的忠实粉丝,Theano需要一些时间来掌握,但它非常方便。

还有一个或两个用于Python的ELM库可以作为参考,当您需要测试自己的实现时,这是一个巨大的优势。

https://github.com/dclambert/Python-ELM

https://github.com/acba/elm

我还没有使用它们,所以我不能详细说明它们的状态,但总比没有好。

您还可以看看Keras和Lasagne,它们都是在Theano之上构建的神经网络库。就像Caffe一样,他们对ELM没什么帮助,但他们会让你开始使用Theano + nnets。然后,您所要做的就是创建自己的ELM图层。

答案 1 :(得分:0)

另一种解决方案是 PyTorch 的 torch.linalg.pinv(),针对 GPU 计算进行了优化:

<块引用>

计算矩阵 onPressed: () => setState(() => isOn = !isOn), child: isOn ? SwitchOnIconWidget() : SwitchOffIconWidget(), 或批处理 input 中每个矩阵的伪逆(也称为 Moore-Penrose 逆)。

答案 2 :(得分:-2)

就Google而言,Caffe不会帮助您使用“极限学习机器”。

  

其次,是否可以使用其python接口在Caffe中实现一个新的学习算法(ELM)?

不,那是不可能的。您必须在C ++中实现新的层和算法。之后你可以通过Python处理它们。

有关Caffe的入门读物,请查看"Neural Nets with Caffe Utilizing the GPU"