5 ms·
I don’t know. I use both. I contribute to both. If you’re interested in supervised neural networks, Keras, in my opinion, is the best option. You’d use CNTK, o
by Q6T46nT668w6i3m 8y ago
I don’t know. I use both. I contribute to both.
If you’re interested in supervised neural networks, Keras, in my opinion, is the best option. You’d use CNTK, or more likely, TensorFlow for your Keras backend.
If you’re interested in unsupervised or semi-supervised neural networks, TensorFlow and PyTorch both work. However, they both have noteworthy issues.
Until eager execution was added to TensorFlow, TensorFlow models needed to be compiled. It was difficult to spice your network with dynamic behavior that couldn’t be easily constrained to a TensorFlow graph. Especially if you weren’t strong programming with common parallel primitives. Eager execution has made this easier, but it’s still more cumbersome than PyTorch’s execution methodology.
PyTorch sacrifices many of the benefits of compilation for usability and this is most obvious when deploying to, for example, the cloud or mobile devices. PyTorch, also, inexplicably, breaks many of the conventions present in the scientific Python ecosystem making it pretty cumbersome to integrate into existing workflows that rely on a package like scikit-image.
It’s complicated. In fact, I believe it’s way too complicated. Thankfully Keras solves most problems for most people in this area.
- thecage411 8y agoWhat are the scientific Python ecosystem conventions that PyTorch breaks?
- Q6T46nT668w6i3m 8y agoThe most obvious is API compatibility (e.g. function definitions) with NumPy, SciPy, scikit-image, etc.
- buildbot 8y agoThat breaking of compatibility is why I often recommend Chainer [1] over Pytorch, as one of the back ends to Chainer is literally numpy. Plus, Chainer is very fast and easy to work with. [1] https://chainer.org https://chainer.org
- Q6T46nT668w6i3m 8y agoYes! It was a mistake not to mention Chainer since it’s an exceptional package. Honestly, it presently fulfills the PyTorch mission better than PyTorch!