搜尋
首頁科技週邊人工智慧為什麼TensorFlow可以做機器學習開發?

機器學習是一門複雜的學科,但由於機器學習框架(例如Google 的TensorFlow)簡化了獲取資料、訓練模型、提供預測和改進未來結果的過程,實現機器學習遠不如以前那麼令人生畏。

為什麼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中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
解读CRISP-ML(Q):机器学习生命周期流程解读CRISP-ML(Q):机器学习生命周期流程Apr 08, 2023 pm 01:21 PM

译者 | 布加迪审校 | 孙淑娟目前,没有用于构建和管理机器学习(ML)应用程序的标准实践。机器学习项目组织得不好,缺乏可重复性,而且从长远来看容易彻底失败。因此,我们需要一套流程来帮助自己在整个机器学习生命周期中保持质量、可持续性、稳健性和成本管理。图1. 机器学习开发生命周期流程使用质量保证方法开发机器学习应用程序的跨行业标准流程(CRISP-ML(Q))是CRISP-DM的升级版,以确保机器学习产品的质量。CRISP-ML(Q)有六个单独的阶段:1. 业务和数据理解2. 数据准备3. 模型

2023年机器学习的十大概念和技术2023年机器学习的十大概念和技术Apr 04, 2023 pm 12:30 PM

机器学习是一个不断发展的学科,一直在创造新的想法和技术。本文罗列了2023年机器学习的十大概念和技术。 本文罗列了2023年机器学习的十大概念和技术。2023年机器学习的十大概念和技术是一个教计算机从数据中学习的过程,无需明确的编程。机器学习是一个不断发展的学科,一直在创造新的想法和技术。为了保持领先,数据科学家应该关注其中一些网站,以跟上最新的发展。这将有助于了解机器学习中的技术如何在实践中使用,并为自己的业务或工作领域中的可能应用提供想法。2023年机器学习的十大概念和技术:1. 深度神经网

基于因果森林算法的决策定位应用基于因果森林算法的决策定位应用Apr 08, 2023 am 11:21 AM

译者 | 朱先忠​审校 | 孙淑娟​在我之前的​​博客​​中,我们已经了解了如何使用因果树来评估政策的异质处理效应。如果你还没有阅读过,我建议你在阅读本文前先读一遍,因为我们在本文中认为你已经了解了此文中的部分与本文相关的内容。为什么是异质处理效应(HTE:heterogenous treatment effects)呢?首先,对异质处理效应的估计允许我们根据它们的预期结果(疾病、公司收入、客户满意度等)选择提供处理(药物、广告、产品等)的用户(患者、用户、客户等)。换句话说,估计HTE有助于我

使用PyTorch进行小样本学习的图像分类使用PyTorch进行小样本学习的图像分类Apr 09, 2023 am 10:51 AM

近年来,基于深度学习的模型在目标检测和图像识别等任务中表现出色。像ImageNet这样具有挑战性的图像分类数据集,包含1000种不同的对象分类,现在一些模型已经超过了人类水平上。但是这些模型依赖于监督训练流程,标记训练数据的可用性对它们有重大影响,并且模型能够检测到的类别也仅限于它们接受训练的类。由于在训练过程中没有足够的标记图像用于所有类,这些模型在现实环境中可能不太有用。并且我们希望的模型能够识别它在训练期间没有见到过的类,因为几乎不可能在所有潜在对象的图像上进行训练。我们将从几个样本中学习

LazyPredict:为你选择最佳ML模型!LazyPredict:为你选择最佳ML模型!Apr 06, 2023 pm 08:45 PM

本文讨论使用LazyPredict来创建简单的ML模型。LazyPredict创建机器学习模型的特点是不需要大量的代码,同时在不修改参数的情况下进行多模型拟合,从而在众多模型中选出性能最佳的一个。 摘要本文讨论使用LazyPredict来创建简单的ML模型。LazyPredict创建机器学习模型的特点是不需要大量的代码,同时在不修改参数的情况下进行多模型拟合,从而在众多模型中选出性能最佳的一个。​本文包括的内容如下:​简介​LazyPredict模块的安装​在分类模型中实施LazyPredict

Mango:基于Python环境的贝叶斯优化新方法Mango:基于Python环境的贝叶斯优化新方法Apr 08, 2023 pm 12:44 PM

译者 | 朱先忠审校 | 孙淑娟引言模型超参数(或模型设置)的优化可能是训练机器学习算法中最重要的一步,因为它可以找到最小化模型损失函数的最佳参数。这一步对于构建不易过拟合的泛化模型也是必不可少的。优化模型超参数的最著名技术是穷举网格搜索和随机网格搜索。在第一种方法中,搜索空间被定义为跨越每个模型超参数的域的网格。通过在网格的每个点上训练模型来获得最优超参数。尽管网格搜索非常容易实现,但它在计算上变得昂贵,尤其是当要优化的变量数量很大时。另一方面,随机网格搜索是一种更快的优化方法,可以提供更好的

人工智能自动获取知识和技能,实现自我完善的过程是什么人工智能自动获取知识和技能,实现自我完善的过程是什么Aug 24, 2022 am 11:57 AM

实现自我完善的过程是“机器学习”。机器学习是人工智能核心,是使计算机具有智能的根本途径;它使计算机能模拟人的学习行为,自动地通过学习来获取知识和技能,不断改善性能,实现自我完善。机器学习主要研究三方面问题:1、学习机理,人类获取知识、技能和抽象概念的天赋能力;2、学习方法,对生物学习机理进行简化的基础上,用计算的方法进行再现;3、学习系统,能够在一定程度上实现机器学习的系统。

超参数优化比较之网格搜索、随机搜索和贝叶斯优化超参数优化比较之网格搜索、随机搜索和贝叶斯优化Apr 04, 2023 pm 12:05 PM

本文将详细介绍用来提高机器学习效果的最常见的超参数优化方法。 译者 | 朱先忠​审校 | 孙淑娟​简介​通常,在尝试改进机器学习模型时,人们首先想到的解决方案是添加更多的训练数据。额外的数据通常是有帮助(在某些情况下除外)的,但生成高质量的数据可能非常昂贵。通过使用现有数据获得最佳模型性能,超参数优化可以节省我们的时间和资源。​顾名思义,超参数优化是为机器学习模型确定最佳超参数组合以满足优化函数(即,给定研究中的数据集,最大化模型的性能)的过程。换句话说,每个模型都会提供多个有关选项的调整“按钮

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),