Moore-Penrose伪逆是用Caffe还是Theano?

Whether to use Caffe or Theano for Moore-Penrose Pseudo inverse?

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

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

就 Google 而言,Caffe 不会帮助您 "Extreme Learning Machines"。

Secondly, Is it possible to implement a new learning algorithm(ELM) in Caffe using its python interface ?

不,那是不可能的。您将不得不在 C++ 中实现新的层和算法。之后你可以通过 Python.

处理它们

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

如果我是你,我会使用 Theano,而不是 Caffe。 Caffe 不是 围绕通用矩阵库进行编程,因此对于 Caffe,您基本上会尝试使用螺丝刀打开啤酒。 如果您确实喜欢使用 C++,请查看 MrShadow 或任何其他基于 GPU 的矩阵库。

... 或者简单地使用 Theano 和 Python.

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

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

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

https://github.com/acba/elm

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

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

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

Computes the pseudo-inverse (also known as the Moore-Penrose inverse) of a matrix input, or of each matrix in a batched input.