Chapter 2. Selecting a Deep Learning Framework

When the decision is made to adopt deep learning, the first question that arises is which deep learning library should you choose (and why)? Deep learning has become a crucial differentiator for many large technology firms and each has either developed or is championing a particular option. Google has TensorFlow. Microsoft has the Microsoft Cognitive Toolkit (aka CNTK). Amazon is supporting the academia-built MXNet, causing some to question the longevity of the internally developed DSSTNE (Deep Scalable Sparse Tensor Network Engineer). Baidu has the PArallel Distributed Deep LEarning (PADDLE) library. Facebook has Torch and PyTorch. Intel has BigDL. The list goes on and more options will inevitably appear.

We can evaluate the various deep learning libraries on a large number of characteristics: performance, supported neural network types, ease of use, supported programming languages, the author, supporting industry players, and so on. To be a contender at this point, each library should offer support for the use of graphics processing units (GPUs)—preferably multiple GPUs—and distributed compute clusters. Table 2-1 summarizes a dozen of the top, open source deep learning libraries available.

Table 2-1. General information and GitHub statistics for the 12 selected deep learning frameworks (the “best” value in each applicable column is highlighted in bold)

General information

GitHub statistics

Org

Year

License

Get Considering TensorFlow for the Enterprise now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.