設(shè)計(jì)基礎(chǔ):什么是TensorFlow?
創(chuàng)建 TensorFlow 只是為了開發(fā)您自己的機(jī)器學(xué)習(xí) (ML) 模型。您甚至可能每天都會(huì)體驗(yàn)它而不知道,例如建議下一個(gè) YouTube 視頻、圖像識(shí)別或語音助手的推薦系統(tǒng)。但什么是 TensorFlow,它是如何工作的,它使用什么硬件,為什么它是機(jī)器學(xué)習(xí)的主要工具?
Google 構(gòu)建了 TensorFlow,這是一個(gè)開源軟件庫,用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)應(yīng)用程序,專為開發(fā)人員設(shè)計(jì)。計(jì)算機(jī)從這些人工智能模型中學(xué)習(xí),以進(jìn)行模式識(shí)別和數(shù)據(jù)預(yù)測。開發(fā)人員利用 TensorFlow 的框架實(shí)現(xiàn)了更高效的模型開發(fā)和訓(xùn)練。該工具加載了多種功能,可幫助構(gòu)建更快、可能更智能的應(yīng)用程序。
TensorFlow 的機(jī)制
想想這個(gè)名字,TensorFlow。它讓我們對它是如何工作的有一個(gè)很好的了解。張量是一個(gè)多維數(shù)據(jù)數(shù)組,就像網(wǎng)格一樣,它存儲(chǔ)代表一串文本、圖像、音頻波形等的數(shù)字。
同時(shí),該流指示數(shù)據(jù)如何通過一系列作(稱為計(jì)算圖)。每個(gè)節(jié)點(diǎn)代表一個(gè)數(shù)學(xué)運(yùn)算,而每個(gè)邊代表這些運(yùn)算之間的數(shù)據(jù)流。將它們放在一起,TensorFlow 本質(zhì)上允許張量數(shù)據(jù)通過數(shù)學(xué)函數(shù)網(wǎng)絡(luò)。
這種結(jié)構(gòu)將大型、復(fù)雜的模型分解為更小、更有效的處理步驟。它輸出一個(gè)結(jié)果,用于區(qū)分圖像中的對象,例如貓和狗。
TensorFlow 之所以受歡迎,部分原因是其先進(jìn)的研究支持、靈活性和可擴(kuò)展性。它在筆記本電腦上運(yùn)行進(jìn)行實(shí)驗(yàn),并可擴(kuò)展到數(shù)千臺(tái)并行工作的服務(wù)器,非常適合業(yè)余愛好者和企業(yè) AI 系統(tǒng)。除了核心庫之外,谷歌和開源社區(qū)還圍繞它開發(fā)了一個(gè)豐富的生態(tài)系統(tǒng)。
例如,Keras 有一個(gè)簡單的界面,允許開發(fā)人員輸入幾行代碼來生成神經(jīng)網(wǎng)絡(luò)。團(tuán)隊(duì)可以使用 TensorBoard 來跟蹤指標(biāo)并可視化模型訓(xùn)練進(jìn)度。借助 TensorFlow Lite,移動(dòng)和嵌入式設(shè)備可以直接在設(shè)備上運(yùn)行 ML 模型。這使得語音識(shí)別和其他應(yīng)用程序等功能能夠高效工作,而無需持續(xù)的互聯(lián)網(wǎng)連接。
此外,開發(fā)人員使用 TensorFlow.js 在帶有 JavaScript 的瀏覽器中運(yùn)行模型。可以通過 TensorFlow Extended 全面開發(fā)和部署 ML 管道。
訓(xùn)練 TensorFlow 模型
開發(fā)人員如何在 TensorFlow 中訓(xùn)練模型?他們設(shè)計(jì)了一個(gè)模型架構(gòu),該架構(gòu)決定了數(shù)據(jù)如何流經(jīng)數(shù)學(xué)函數(shù)層。然后,他們?yōu)槠涮峁┯?xùn)練數(shù)據(jù),作為模型學(xué)習(xí)的示例。該框架依靠優(yōu)化算法(由自動(dòng)微分提供支持)來調(diào)整模型的內(nèi)部參數(shù)。
TensorFlow 使用自動(dòng)微分來計(jì)算梯度以進(jìn)行優(yōu)化,無需手動(dòng)進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算,例如微積分和線性代數(shù)。這樣,開發(fā)人員就可以設(shè)計(jì)解決方案,而不是輸入方程。訓(xùn)練后,它會(huì)在新數(shù)據(jù)上進(jìn)行測試以評估其準(zhǔn)確性。如果性能符合預(yù)期,它就會(huì)部署到實(shí)際應(yīng)用程序中。
以下視頻是 TensorFlow 的截?cái)鄬?shí)際使用。如果您按照視頻訪問 TensorFlow 的 YouTube 頁面,您會(huì)發(fā)現(xiàn)更多關(guān)于人們?nèi)绾卧谒麄兊捻?xiàng)目中使用它的示例。還有很多鼓舞人心的故事。
擴(kuò)展的硬件支持
此外,由于機(jī)器學(xué)習(xí)需要大量計(jì)算,TensorFlow 由于支持各種硬件平臺(tái)而提供高性能。它將 CPU 用于不需要大量并行處理的小型模型、實(shí)驗(yàn)和生產(chǎn)系統(tǒng)。這也意味著任何擁有 CPU 的人都可以在臺(tái)式機(jī)或筆記本電腦上處理 TensorFlow 項(xiàng)目。
此外,TensorFlow 還能夠使用 GPU 處理大規(guī)模的并行數(shù)學(xué)運(yùn)算,使其可用于訓(xùn)練深度學(xué)習(xí)模型。
除此之外,谷歌還開發(fā)了張量處理單元(TPU)來處理機(jī)器學(xué)習(xí)任務(wù)(圖1)。TPU 加速訓(xùn)練和推理,使大型模型能夠大規(guī)模高效運(yùn)行。這些用于數(shù)據(jù)中心,開發(fā)人員可以通過 Google Cloud 訪問它們。由于這種靈活性,開發(fā)人員能夠快速制作模型原型并將其擴(kuò)展到生產(chǎn)中,而無需針對不同的硬件重新編碼。
谷歌云

1. Google 的張量處理單元確保 TensorFlow 具有最佳性能。
各種日常產(chǎn)品都使用 TensorFlow,包括智能手機(jī)語音助手。當(dāng)您與 Siri 或 Google 助理交談時(shí),TensorFlow 模型會(huì)處理您的語音波形。之后,它被轉(zhuǎn)換為張量,然后通過在數(shù)百萬個(gè)語音樣本上訓(xùn)練的神經(jīng)網(wǎng)絡(luò)層。這些模型將聲音分類為單詞,理解意圖并輸出響應(yīng)。
Google Photos 還依賴 TensorFlow 進(jìn)行圖像識(shí)別,它可以組織照片。甚至醫(yī)護(hù)人員也使用它在醫(yī)學(xué)掃描期間進(jìn)行疾病檢測(圖 2)。

2. 智能手機(jī)的 Google Assistant 通常使用 TensorFlow。
TensorFlow:廣泛采用的人工智能工具
總體而言,TensorFlow 使機(jī)器學(xué)習(xí)背后的復(fù)雜數(shù)學(xué)運(yùn)算更易于使用,同時(shí)根據(jù)需要為開發(fā)人員提供更多控制權(quán)。它帶有完整的工作流程,從設(shè)計(jì)和訓(xùn)練模型到跨硬件擴(kuò)展模型并在生產(chǎn)中部署。強(qiáng)大的計(jì)算能力、靈活性和廣泛的工具生態(tài)系統(tǒng)使 TensorFlow 成為廣泛采用的 AI 應(yīng)用程序平臺(tái)。
當(dāng)然,這只是一個(gè)概述。我計(jì)劃嘗試使用 TensorFlow 來自動(dòng)執(zhí)行一些繁瑣的格式設(shè)置,我們在準(zhǔn)備發(fā)表文章時(shí)必須做。希望我能抽出一些時(shí)間在 Electronic Design 與大家分享這段旅程。
哦,它要多少錢?它是免費(fèi)的,試用的。如果您想以某種方式部署它,似乎有各種定價(jià)選項(xiàng),但這些選項(xiàng)都不是公開的。一旦我參與了試用,我就會(huì)報(bào)告。
然而,最近幾天 TensorFlow 的受歡迎程度已顯著下降。取而代之的是 PyTorch。ChatGPT 現(xiàn)在甚至使用 PyTorch。







評論