1

Мне нужно использовать (в приложении) Extreme Learning Machine (ELM), который оптимизирован для нескольких процессоров или графических процессоров. Поскольку основное вычисление ELM включает в себя псевдореверсное и матричное умножение Мура-Пенроуза, что было бы лучшим вариантом для внедрения ELM среди Theano и Caffe?Использовать ли Caffe или Theano для Moore-Penrose Pseudo inverse?

Во-вторых, возможно ли реализовать новый алгоритм обучения (ELM) в Caffe, используя его интерфейс python?

ответ

1

Если бы я был вами, я бы использовал Theano, а не Caffe. Caffe is не запрограммирован вокруг библиотеки матриц общего назначения, поэтому с помощью Caffe вы бы попытались использовать отвертку, чтобы открыть пиво в основном. Если вы окончательно почувствуете, что используете C++, посмотрите на MrShadow или на любые другие библиотеки на основе графического процессора.

... или просто используйте Theano с Python.

Я не большой поклонник Python, и Теано занимает некоторое время, чтобы справиться, но это очень удобно.

Также есть одна или две библиотеки ELM для Python, которые вы можете использовать в качестве ссылки, это огромный плюс, когда вам нужно протестировать свою собственную реализацию.

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

https://github.com/acba/elm

Я не использовал их, так что я не могу остановиться на их статус, но что-то лучше, чем ничего.

Вы также можете взглянуть на Keras и Lasagne, обе библиотеки нейронных сетей построены на вершине Теано. Как и Caffe, они не будут сильно помогать ELM, но они начнут вас с Theano + nnets. Тогда все, что вам нужно сделать, это создать свои собственные уровни ELM.

-2

Насколько Google обеспокоен, Caffe не поможет вам с «Экстремальными обучающими машинами».

Во-вторых, возможно ли реализовать новый алгоритм обучения (ELM) в Caffe, используя его интерфейс python?

Нет, это невозможно. Вам нужно будет реализовать новые слои и алгоритмы на C++. Впоследствии вы можете общаться с ними через Python.

Для грунтовки на кофе, проверьте "Neural Nets with Caffe Utilizing the GPU".

+0

Можете ли вы рассказать мне, как это сделать в C++? – user3733814

+0

извините, никакого опыта с этим – Raffael