我需要使用(在应用程序中)极限学习机(ELM),它针对多个CPU或GPU进行了高度优化。由于ELM主要计算涉及Moore-Penrose伪逆和矩阵乘法,在Theano和Caffe中实现ELM的最佳选择是什么?
其次,是否可以使用其python接口在Caffe中实现一个新的学习算法(ELM)?
答案 0 :(得分:1)
如果我是你,我会使用Theano,而不是Caffe。 Caffe在通用矩阵库周围编程 ,所以对于Caffe,你会尝试用螺丝刀基本上打开啤酒。 如果您明确感觉使用C ++,请查看MrShadow或任何其他基于GPU的矩阵库。
...或者只是简单地使用Theano和Python。
我不是Python的忠实粉丝,Theano需要一些时间来掌握,但它非常方便。
还有一个或两个用于Python的ELM库可以作为参考,当您需要测试自己的实现时,这是一个巨大的优势。
https://github.com/dclambert/Python-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"。