Пиро против Пимк? В чем разница между этими вероятностного программирования?

Я использовал "англиканский", который основан на Clojure, и я думаю, что это не хорошо для меня. Плохие документы и слишком маленькое сообщество, чтобы найти помощь. Кроме того, я все еще не могу ознакомиться с языками, основанными на схеме. Поэтому я хочу изменить язык на основе языка Python.

возможно, Pyro или Pymc могут быть в этом случае, но я совершенно не знаю об обоих из них.

  • в чем разница между двумя системами?
  • можно ли их использовать для те же проблемы?
  • есть ли примеры, где один светит в сравнении?

1 ответов


с здесь

Pyro-это глубокий вероятностный язык программирования, который фокусируется на вариационный вывод, поддерживает составные алгоритмы вывода. Pyro стремится быть более динамичным (с помощью PyTorch) и универсальным (разрешение рекурсии).

Pyro охватывает глубокие нейронные сети и в настоящее время фокусируется на вариационном выводе. Пиро еще не делает Марковскую цепь Монте-Карло (в отличие от PyMC и Эдварда).

Pyro построен на pytorch тогда как PyMC3 на theano. Таким образом, вы получаете динамическое программирование PyTorch, и недавно было объявлено, что Theano не будет сохранить после года. Тем не менее, я обнаружил, что PyMC имеет отличную документацию и замечательный ресурсы. Другой альтернативой является Эдвард, построенный поверх Tensorflow, который более зрелый и многофункциональный, чем pyro atm. Авторы Edward утверждают, что это быстрее, чем PyMC3.
Я думаю, что решение сводится к функциям, документации и стиль программирования, который вы ищете.