為什麼TensorFlow可以做機器學習開發?
機器學習是一門複雜的學科,但由於機器學習框架(例如Google 的TensorFlow)簡化了獲取資料、訓練模型、提供預測和改進未來結果的過程,實現機器學習遠不如以前那麼令人生畏。
TensorFlow 由 Google Brain 團隊創建,最初於 2015 年向公眾發布,是一個用於數值計算和大規模機器學習的開源程式庫。 TensorFlow 將大量機器學習和深度學習模型和演算法(也稱為神經網路)捆綁在一起,並透過常見的程式隱喻使它們變得有用。它使用 Python 或 JavaScript 為建立應用程式提供方便的前端 API,同時在高效能 C 中執行這些應用程式。
TensorFlow與PyTorch和Apache MXNet 等框架競爭,可以訓練和運行深度神經網絡,用於手寫數字分類、圖像識別、詞嵌入、循環神經網絡、用於機器翻譯的序列到序列模型、自然語言處理和基於PDE(偏微分方程)的模擬。最重要的是,TensorFlow 支援大規模生產預測,使用相同的模型進行訓練。
TensorFlow 也有廣泛的預訓練模型庫,可用於你自己的專案。你也可以使用TensorFlow 模型園中的程式碼 作為訓練你自己的模型的最佳實務範例。
TensorFlow 的工作原理
TensorFlow 讓開發人員可以建立資料流程圖-描述資料如何透過圖或一系列處理節點移動的結構。圖中的每個節點代表一個數學運算,節點之間的每個連接或邊都是一個多維資料數組,或稱張量。
TensorFlow 應用程式可以在大多數方便的目標上運行:本機、雲端中的叢集、iOS 和 Android 裝置、CPU 或 GPU。如果你使用 Google 自己的雲,你可以在 Google 的自訂TensorFlow 處理單元(TPU) 晶片上運行 TensorFlow,以進一步加速。不過,TensorFlow 所建立的結果模型可以部署在大多數用於提供預測的裝置上。
TensorFlow 2.0 於 2019 年 10 月發布,根據使用者回饋對框架進行了多種改進,使其更易於使用(例如,透過使用相對簡單的 KerasAPI 進行模型訓練)和更高的效能。由於新的 API,分散式訓練更易於運行,並且對 TensorFlow Lite 的支援使在更多種類的平台上部署模型成為可能。但是,必須重寫為早期版本的 TensorFlow 編寫的程式碼——有時只是輕微的,有時是顯著的——以最大限度地利用新的 TensorFlow 2.0 功能。
經過訓練的模型可用於 透過 使用 REST 或gRPC API的 Docker 容器將預測作為服務提供。對於更進階的服務場景,你可以使用Kubernetes
將 TensorFlow 與 Python 結合使用
TensorFlow 透過 Python 語言為程式設計師提供了所有這些功能。 Python 易於學習和使用,它提供了方便的方法來表達如何將高階抽象耦合在一起。 TensorFlow 在 Python 3.7 到 3.10 版本上受支持,雖然它可以在早期版本的 Python 上工作,但不能保證這樣做。
TensorFlow 中的節點和張量是 Python 對象,TensorFlow 應用程式本身就是 Python 應用程式。然而,實際的數學運算並不是 Python 中執行的。透過 TensorFlow 提供的轉換庫被編寫為高效能 C 二進位。 Python 只是引導各個部分之間的流量,並提供高階程式抽象來將它們連接在一起。
TensorFlow 中的高階工作(建立節點和圖層並將它們連結在一起)使用Keras庫。 Keras API 表面上很簡單;一個三層的基本模型可以在不到 10 行程式碼中定義,同樣的訓練程式碼只需要幾行程式碼。但如果你想“揭開面紗”,做更細緻的工作,例如編寫自己的訓練循環,你可以這樣做。
將 TensorFlow 與 JavaScript 結合使用
Python 是與 TensorFlow 和機器學習一起工作的最受歡迎的語言。但是 JavaScript 現在也是 TensorFlow 的一流語言,JavaScript 的巨大優勢之一是它可以在任何有網頁瀏覽器的地方運行。
TensorFlow.js(稱為 JavaScript TensorFlow 函式庫)使用 WebGL API 透過系統中可用的任何 GPU 來加速運算。也可以使用WebAssembly後端執行,如果你只在 CPU 上運行,它比常規的 JavaScript 後端更快,但最好盡可能使用 GPU。預建模型讓你可以啟動並運行簡單的項目,讓你了解事情的運作方式。
TensorFlow 精簡版
經過訓練的 TensorFlow 模型也可以部署在邊緣運算或行動裝置上,例如 iOS 或 Android 系統。 TensorFlow Lite工具集透過讓你在模型大小和準確性之間進行權衡,優化 TensorFlow 模型以在此類設備上運作良好。較小的模型(即 12MB 對 25MB,甚至 100 MB)的準確度較低,但準確度的損失通常很小,並且被模型的速度和能效所抵消。
為什麼使用 TensorFlow
TensorFlow 為機器學習開發提供最大的好處是抽象。開發人員可以專注於整體應用程式邏輯,而不是處理實作演算法的細節,或找出將一個函數的輸出連接到另一個函數的輸入的正確方法。 TensorFlow 負責幕後的細節。
TensorFlow 為需要偵錯和了解 TensorFlow 應用程式的開發人員提供了更多便利。每個圖形操作都可以單獨且透明地進行評估和修改,而不是將整個圖形建構成單一不透明物件並立即對其進行評估。這種所謂的「急切執行模式」作為舊版 TensorFlow 的選項提供,現在已成為標準。
TensorBoard視覺化套件可讓你透過基於 Web 的互動式儀表板檢查和分析圖表的運作方式。 Tensorboard.dev服務 (由 Google 託管)可讓你託管和分享用 TensorFlow 編寫的機器學習實驗。它可以免費用於儲存多達 100M 的標量、1GB 的張量資料和 1GB 的二進位物件資料。 (請注意,託管在 Tensorboard.dev 中的任何資料都是公開的,因此請勿將其用於敏感專案。)
TensorFlow 也從Google一流商業機構的支援中獲得了許多優勢。谷歌推動了該專案的快速發展,並創造了許多重要的產品,使 TensorFlow 更易於部署和使用。上述用於在Google雲端中加速效能的 TPU 晶片只是一個例子。
使用 TensorFlow 進行確定性模型訓練
TensorFlow 實現的一些細節使得某些訓練作業很難獲得完全確定的模型訓練結果。有時,在一個系統上訓練的模型與在另一個系統上訓練的模型會略有不同,即使它們提供了完全相同的資料。這種差異的原因很棘手——一個原因是隨機數是如何播種的以及在哪裡播種;另一個與使用 GPU 時的某些非確定性行為有關。 TensorFlow 的 2.0 分支有一個選項,可以透過幾行程式碼在整個工作流程中啟用確定性。但是,此功能以效能為代價,並且僅應在偵錯工作流程時使用。
TensorFlow 與 PyTorch、CNTK 和 MXNet
TensorFlow 與許多其他機器學習框架競爭。 PyTorch、CNTK 和 MXNet 是滿足許多相同需求的三個主要框架。讓我們快速了解它們在哪些方面脫穎而出並與TensorFlow 相比不足:
- PyTorch是用Python 構建的,並且與TensorFlow 有許多其他相似之處:引擎蓋下的硬體加速組件、允許即用即設計工作的高度互動的開發模型,以及已經包含許多有用的元件。對於需要在短時間內啟動並運行的專案的快速開發,PyTorch通常是更好的選擇,但 TensorFlow 更適合大型專案和更複雜的工作流程。
- CNTK是 Microsoft Cognitive Toolkit,在使用圖結構來描述資料流方面與 TensorFlow 類似,但它主要專注於建立深度學習神經網路。 CNTK可以更快地處理許多神經網路作業,並擁有更廣泛的 API(Python、C 、C#、Java)。但目前它不像 TensorFlow 那樣容易學習或部署。它也僅在 GNU GPL 3.0 許可下可用,而 TensorFlow 在更自由的 Apache 許可下可用。而且 CNTK 沒有那麼正面的發展。上一個主要版本是在 2019 年。
- Apache MXNet被 Amazon 採用為 AWS 上的首要深度學習框架,可以在多個 GPU 和多台機器上幾乎線性擴充。 MXNet也支援廣泛的語言 API——Python、C 、Scala、R、JavaScript、Julia、Perl、Go——儘管它的原生 API 不像 TensorFlow 那麼好用。它還擁有一個小得多的用戶和開發人員社群。
原文標題:What is TensorFlow? The machine learning library explained
#以上是為什麼TensorFlow可以做機器學習開發?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

圖像標註是將標籤或描述性資訊與圖像相關聯的過程,以賦予圖像內容更深層的含義和解釋。這個過程對於機器學習至關重要,它有助於訓練視覺模型以更準確地識別圖像中的各個元素。透過為圖像添加標註,使得電腦能夠理解圖像背後的語義和上下文,從而提高對圖像內容的理解和分析能力。影像標註的應用範圍廣泛,涵蓋了許多領域,如電腦視覺、自然語言處理和圖視覺模型具有廣泛的應用領域,例如,輔助車輛識別道路上的障礙物,幫助疾病的檢測和診斷透過醫學影像識別。本文主要推薦一些較好的開源免費的圖片標註工具。 1.Makesens

在機器學習和資料科學領域,模型的可解釋性一直是研究者和實踐者關注的焦點。隨著深度學習和整合方法等複雜模型的廣泛應用,理解模型的決策過程變得尤為重要。可解釋人工智慧(ExplainableAI|XAI)透過提高模型的透明度,幫助建立對機器學習模型的信任和信心。提高模型的透明度可以透過多種複雜模型的廣泛應用等方法來實現,以及用於解釋模型的決策過程。這些方法包括特徵重要性分析、模型預測區間估計、局部可解釋性演算法等。特徵重要性分析可以透過評估模型對輸入特徵的影響程度來解釋模型的決策過程。模型預測區間估計

本文將介紹如何透過學習曲線來有效辨識機器學習模型中的過度擬合和欠擬合。欠擬合和過擬合1、過擬合如果一個模型對資料進行了過度訓練,以至於它從中學習了噪聲,那麼這個模型就被稱為過擬合。過度擬合模型非常完美地學習了每一個例子,所以它會錯誤地分類一個看不見的/新的例子。對於一個過度擬合的模型,我們會得到一個完美/接近完美的訓練集分數和一個糟糕的驗證集/測試分數。略有修改:"過擬合的原因:用一個複雜的模型來解決一個簡單的問題,從資料中提取雜訊。因為小資料集作為訓練集可能無法代表所有資料的正確表示。"2、欠擬合如

1950年代,人工智慧(AI)誕生。當時研究人員發現機器可以執行類似人類的任務,例如思考。後來,在1960年代,美國國防部資助了人工智慧,並建立了實驗室進行進一步開發。研究人員發現人工智慧在許多領域都有用武之地,例如太空探索和極端環境中的生存。太空探索是對宇宙的研究,宇宙涵蓋了地球以外的整個宇宙空間。太空被歸類為極端環境,因為它的條件與地球不同。要在太空中生存,必須考慮許多因素,並採取預防措施。科學家和研究人員認為,探索太空並了解一切事物的現狀有助於理解宇宙的運作方式,並為潛在的環境危機

通俗來說,機器學習模型是一種數學函數,它能夠將輸入資料映射到預測輸出。更具體地說,機器學習模型是一種透過學習訓練數據,來調整模型參數,以最小化預測輸出與真實標籤之間的誤差的數學函數。在機器學習中存在多種模型,例如邏輯迴歸模型、決策樹模型、支援向量機模型等,每種模型都有其適用的資料類型和問題類型。同時,不同模型之間存在著許多共通性,或者說有一條隱藏的模型演化的路徑。將聯結主義的感知機為例,透過增加感知機的隱藏層數量,我們可以將其轉化為深度神經網路。而對感知機加入核函數的話就可以轉換為SVM。這一

C++中機器學習演算法面臨的常見挑戰包括記憶體管理、多執行緒、效能最佳化和可維護性。解決方案包括使用智慧指標、現代線程庫、SIMD指令和第三方庫,並遵循程式碼風格指南和使用自動化工具。實作案例展示如何利用Eigen函式庫實現線性迴歸演算法,有效地管理記憶體和使用高效能矩陣操作。

機器學習是人工智慧的重要分支,它賦予電腦從數據中學習的能力,並能夠在無需明確編程的情況下改進自身能力。機器學習在各個領域都有廣泛的應用,從影像辨識和自然語言處理到推薦系統和詐欺偵測,它正在改變我們的生活方式。機器學習領域存在著多種不同的方法和理論,其中最具影響力的五種方法被稱為「機器學習五大派」。這五大派分別為符號派、聯結派、進化派、貝葉斯派和類推學派。 1.符號學派符號學(Symbolism),又稱符號主義,強調利用符號進行邏輯推理和表達知識。該學派認為學習是一種逆向演繹的過程,透過現有的

MetaFAIR聯合哈佛優化大規模機器學習時所產生的資料偏差,提供了新的研究架構。據所周知,大語言模型的訓練常常需要數月的時間,使用數百甚至上千個GPU。以LLaMA270B模型為例,其訓練總共需要1,720,320個GPU小時。由於這些工作負載的規模和複雜性,導致訓練大模型存在著獨特的系統性挑戰。最近,許多機構在訓練SOTA生成式AI模型時報告了訓練過程中的不穩定情況,它們通常以損失尖峰的形式出現,例如Google的PaLM模型訓練過程中出現了多達20次的損失尖峰。數值偏差是造成這種訓練不準確性的根因,
