Microsoft Cognitive Toolkit (CNTK) backend for PyMC4

I believe Microsoft Cognitive Toolkit previously known as CNTK (backed by Microsoft) should also be considered as a backend for PyMC4. Any thoughts?

Could be considered. What are its pros and cons? How would using it alter how PyMC3 is used? (I’m most concerned about the API; it should be stable.)

For API, Microsoft and Amazon have introduced a new library called GLUON which they describe as “Gluon provides a clear, concise API for defining machine learning models using a collection of pre-built, optimized neural network components”[1].

Gluon uses Mxnet as it’s backend but it will be able to use CNTK as it’s backend too.

Does this answer your concern regarding API?

[1] https://aws.amazon.com/blogs/aws/introducing-gluon-a-new-library-for-machine-learning-from-aws-and-microsoft/

Somewhat, I was mostly wondering how changing to CNTK would affect PyMC3’s API. From other discussion threads, the declarative API alight have to be changed if we went to non-static computational graphs.

Another point that worries me is the longevity of the frameworks. Will it be discontinued, and thus we will have to change back ends again?

Yet another point is community familiarity. To get people to use it, the package first and foremost has to be easy to use, and that mostly means a declarative style of API extended by commonly used packages. It’s why I like CuPy over all the other GPU tensor libraries, because it implements numpy’s API and therefore is idiomatic.

Finally, on complexity. Do we need a DL framework backing the package when 90% of the use case seems to not be deep learning? Open question for me, I’m kind of agnostic on this.

1 Like