# Choosing a Deep Learning library for developing and deploying your App/Service

DevFeed: [Choosing a Deep Learning library for developing and deploying your App/Service](<https://devfeed.tech/articles/choosing-a-deep-learning-library-for-developing-and-deploying-your-app-service-26523.md>)

Original publisher: [Read original article](<http://engineering.curalate.com/2018/03/23/DL-lib-for-app-dev-and-prod.html>)

Published: 2018-03-23T10:11:36Z

Content type: article

Language: en

Sources: [Curalate](<https://devfeed.tech/sources/curalate.md>)

Topics: [Deep learning](<https://devfeed.tech/topics/deep-learning.md>), [Library](<https://devfeed.tech/topics/library.md>), [App](<https://devfeed.tech/topics/app.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>), [Code](<https://devfeed.tech/topics/code.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [caffe](<https://devfeed.tech/tags/caffe.md>), [cntk](<https://devfeed.tech/tags/cntk.md>), [code](<https://devfeed.tech/tags/code.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [deep](<https://devfeed.tech/tags/deep.md>), [deep-learning](<https://devfeed.tech/tags/deep-learning.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [learning](<https://devfeed.tech/tags/learning.md>), [library](<https://devfeed.tech/tags/library.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mxnet](<https://devfeed.tech/tags/mxnet.md>), [network](<https://devfeed.tech/tags/network.md>), [neural](<https://devfeed.tech/tags/neural.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [pytorch](<https://devfeed.tech/tags/pytorch.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [tensorflow](<https://devfeed.tech/tags/tensorflow.md>), [vs](<https://devfeed.tech/tags/vs.md>)

## AI overview

This article discusses how to choose a deep learning library for developing and deploying applications or services. Drawing on Curalate's experience using several libraries in production, it identifies factors such as application needs, deployment platforms, deep network architecture, API language requirements, and codebase quality.

## Source excerpt

Interest in deep learning is growing and growing and, with it at peak hype right now, a lot of people are looking to find the best deep learning library to build their new app or bring their company into the modern age. There are many deep learning toolkits to choose from ranging from the long used, supported, and robust academic libraries to the new state-of-the-art, industry backed platforms. At Curalate, we've been working on deep learning problems since 2014, meaning we've had the chance to watch the deep learning community and its open source libraries grow. We have also had the fortunate (unfortunate?) experience of using a few of the deep learning libraries in our production services and applications, and along the way, we have learned a lot about what to look for in a deep learning library to build reliable, production-ready applications and services. In this post, I'll share our lessons learned knowledge in hopes it will help you in your search for the perfect deep learning library match. You might even find that your best fit is using more than one! Important factors The specifics needs of your application/service The platform you are developing on and deploying to. Develop in OSX? Linux? Windows? Plan on having your application run in a web browser? A smart phone? A massive multi-node GPU cluster? It's not surprising that each of the libraries have prioritized different environments and some will work much better for your specific situation. The specific deep net architecture you are trying to implement If you are just trying to implement a typical, pre-trained classification net, this factor may not be as important for you. Some libraries are more performant and appropriate for certain types of deep nets (LSTMs, RNNs), but more on this later. API language requirements If you already have a code base written in language A, you probably would like to keep it that way without having to figure out some convoluted way to fit a deep net interface in language B