官术网_书友最值得收藏!

第2章 編程模型

現代機器學習框架包含大量的組件,輔助用戶高效開發機器學習算法、處理數據、部署模型、調優性能和調用硬件加速器。在設計這些組件的應用編程接口(Application Programming Interface,API)時,一個核心的訴求是:如何平衡框架性能和易用性?為了達到最優的性能,開發者需要利用便于硬件編程的語言,如C和C++進行開發。這是因為C和C++可以幫助機器學習框架高效地調用硬件底層API,從而最大限度發揮硬件性能。同時,現代操作系統(如Linux和Windows)提供豐富的基于C和C++的API接口(如文件系統、網絡編程、多線程管理等),通過直接調用操作系統API,可以降低框架運行的開銷。

從易用性的角度分析,機器學習框架的使用者往往具有豐富的行業背景(如數據科學家、生物學家、化學家、物理學家等)。他們常用的編程語言是高層次腳本語言,如Python、MATLAB、R和Julia。相比于C和C++,這些語言提供編程易用性的同時,喪失了C和C++對底層硬件和操作系統進行深度優化的能力。因此,機器學習框架的核心設計目標是:具有易用的編程接口支持用戶使用高層次語言,如Python實現機器學習算法;同時也要具備以C和C++為核心的低層次編程接口幫助框架開發者用C和C++實現大量高性能組件,從而在硬件上高效執行。在本章中,將講述如何達到這個設計目標。

本章的學習目標包括:

(1)理解機器學習系統的工作流和以Python為核心的編程接口設計。

(2)理解機器學習系統以神經網絡模塊為核心的接口設計原理和實現。

(3)理解機器學習系統上層Python接口如何調用底層C/C++接口。

(4)了解機器學習系統編程接口的演進方向。

主站蜘蛛池模板: 辽宁省| 东莞市| 延津县| 嘉善县| 明光市| 潮安县| 阳新县| 康马县| 泾阳县| 特克斯县| 安新县| 崇仁县| 安阳县| 丰城市| 霞浦县| 石台县| 深泽县| 建水县| 吴旗县| 石渠县| 潢川县| 报价| 洱源县| 延津县| 阿图什市| 织金县| 郓城县| 额敏县| 余干县| 通道| 宁波市| 会泽县| 武夷山市| 房山区| 如皋市| 彭州市| 卢龙县| 松溪县| 大足县| 新和县| 平遥县|