Эрланг очень хорошо подходит для NN.
- Нейроны могут моделироваться процессами (нет проблем с миллионами из них)
- Соединения / синапсы могут быть представлены PID целевого нейрона. Очень легко инициализировать такую сеть как часть стандартной процедуры инициализации в OTP. Связь будет осуществляться путем передачи сообщений.
- Может быть, было бы хорошо иметь глобальное адресное пространство в ETS / mnesia (встроенные хранилища данных) для динамической реконфигурации структуры сети.
- Сопоставление с образцом в блоке приема может определить, какой тип нейрона получает сигнал, и изменить его на лету.
- Было бы очень легко контролировать такую сеть.
Также учтите, что Erlang NN будет «живым» все время. Вы сможете запросить нейроны, слои, маршрутизаторы и т. Д. В любое время.
В C / C ++ вы просто читаете текущее состояние массивов / структуры данных.
Что касается производительности, мы все знаем, что C / C ++ на несколько порядков быстрее, чем Erlang,
Однако тема NN хитрая.
Если в сети будет очень мало нейронов, в очень широком адресном пространстве, в обычном массиве,
повторение снова и снова может быть дорогостоящим (в C). Эквивалентная ситуация в Erlang была бы решена с помощью одного запроса к нейронам root / root (входной слой), который передавал бы запрос непосредственно хорошо адресованным соседям.