|
| 1 | +# Programming Model |
| 2 | + |
| 3 | +Machine learning frameworks comprise various components that facilitate |
| 4 | +the efficient development of algorithms, data processing, model |
| 5 | +deployment, performance optimization, and hardware acceleration. When |
| 6 | +designing the application programming interfaces (APIs) for these |
| 7 | +components, a key consideration is striking the right balance between |
| 8 | +framework performance and usability. To achieve optimal performance, |
| 9 | +developers utilize C or C++, as these programming languages enable |
| 10 | +efficient invocation of the APIs provided by the operating system and |
| 11 | +hardware accelerators. |
| 12 | + |
| 13 | +Regarding usability, machine learning framework users, including data |
| 14 | +scientists, biologists, chemists, and physicists, often possess strong |
| 15 | +industrial backgrounds and are skilled in using high-level scripting |
| 16 | +languages like Python, Matlab, R, and Julia. While these languages offer |
| 17 | +remarkable programming usability, they lack deep optimization |
| 18 | +capabilities for underlying hardware or operating systems compared to C |
| 19 | +and C++. Therefore, the core design objective of machine learning |
| 20 | +frameworks encompasses two aspects: providing easy-to-use APIs for |
| 21 | +implementing algorithms using high-level languages like Python, and |
| 22 | +providing low-level APIs centered around C and C++ to assist framework |
| 23 | +developers in implementing numerous high-performance components and |
| 24 | +efficiently executing them on hardware. This chapter describes |
| 25 | +strategies for achieving this design objective. |
| 26 | + |
| 27 | +The chapter aims to achieve the following learning objectives: |
| 28 | + |
| 29 | +1. Understanding the workflows and programming principles of machine |
| 30 | + learning frameworks. |
| 31 | + |
| 32 | +2. Understanding the design of neural network models and layers. |
| 33 | + |
| 34 | +3. Understanding how machine learning frameworks bridge Python and |
| 35 | + C/C++ functions. |
| 36 | + |
| 37 | +4. Understanding the support for functional programming in machine |
| 38 | + learning frameworks. |
0 commit comments