什麼是 TensorFlow? 它是如何工作的[帶有示例]

已發表: 2021-09-22

TensorFlow 是一個用於構建機器學習模型的開源庫。 對於熱衷於使用機器學習和人工智能的人來說,這是一個令人難以置信的平台。 此外,隨著機器學習市場的穩步增長,隨著科技公司探索人工智能技術的多樣化功能,TensorFlow 等工具也成為人們關注的焦點。 毫無疑問,到 2027 年,全球機器學習市場的估值預計將達到 1171.9 億美元

但首先,有必要了解什麼是 TensorFlow ,以及是什麼讓它成為全球開發人員的熱門選擇。

目錄

什麼是 TensorFlow?

TensorFlow 是一個用於機器學習的端到端開源平台,特別關注深度神經網絡。 深度學習是機器學習的一個子集,涉及對大規模非結構化數據的分析。 深度學習與傳統機器學習的不同之處在於後者通常處理結構化數據。

TensorFlow 擁有靈活而全面的庫、工具和社區資源集合。 它允許開發人員構建和部署最先進的機器學習驅動的應用程序。 TensorFlow 的一大優點是它使用 Python 提供方便的前端 API 來構建應用程序,同時在高性能、優化的 C++ 中執行它們。

Google Brain 團隊最初開發了TensorFlow Python深度學習庫供內部使用。 從那時起,開源平台在研發和生產系統中的使用有了巨大的增長。

一些 TensorFlow 基礎知識

現在我們對什麼是 TensorFlow有了基本的了解,時候深入了解有關該平台的更多細節了。

以下是與 TensorFlow 相關的一些基本概念的簡要概述。 我們將從張量開始——TensorFlow 的核心組件,平台由此得名。

張量

TensorFlow Python深度學習庫中,張量是表示數據類型的數組。 與一維向量或數組或二維矩陣不同,張量可以有n維。 在張量中,這些值包含具有已知形狀的相同數據類型。 形狀代表維度。 因此,向量是一維張量,矩陣是二維張量,標量是零維張量。

張量

資源

形狀

TensorFlow Python庫中,形狀是指張量的維度。

在 TensorFlow Python 庫中,形狀是指張量的維度。

資源

在上圖中,張量的形狀為 (2,2,2)。

類型

類型表示張量中的值所持有的數據類型。 通常,張量中的所有值都具有相同的數據類型。 TensorFlow 中的數據類型如下:

  • 整數
  • 浮點
  • 無符號整數
  • 布爾值
  • 字符串
  • 具有量化操作的整數
  • 複數

圖形

圖是在輸入張量上連續發生的一組計算。 它包括表示模型中數學運算的節點排列。

會議

TensorFlow 中的會話執行圖中的操作。 運行它以評估圖中的節點。

運營商

TensorFlow 中的運算符是預定義的數學運算。

張量如何工作?

在 TensorFlow 中,數據流圖描述了數據如何通過一系列處理節點。 TensorFlow 使用數據流圖來構建模型。 TensorFlow 中的圖形計算是通過張量之間的互連來促進的。

將 n 維張量作為輸入饋送到神經網絡,該神經網絡經過多次操作以給出輸出。 這些圖有一個節點網絡,其中每個節點代表一個數學運算。 但是節點之間的邊是多維數據數組或張量。 TensorFlow 會話允許執行圖形或圖形的一部分。 為此,會話在一台或多台機器上分配資源並保存中間結果和變量的實際值。

張量函數

資源

TensorFlow 應用程序幾乎可以在任何方便的目標上運行,可以是 CPU、GPU、雲中的集群、本地機器或 Android 和 iOS 設備。

TensorFlow 計算圖

TensorFlow 中的計算圖是一個節點網絡,其中每個節點操作乘法、加法或計算某些多元方程。 在 TensorFlow 中,編寫代碼來創建圖、運行會話和執行圖。 我們分配的每個變量都成為一個節點,我們可以在其中執行乘法和加法等數學運算。

下面是一個簡單的例子來展示計算圖的創建:

假設我們要執行計算:F(x,y,z) = (x+y)*z。

三個變量 x、y 和 z 將轉換為下圖中的三個節點:

TensorFlow 計算圖

資源

構建圖的步驟:

步驟 1:分配變量。 在此示例中,值為:

x = 1,y = 2,z = 3

第 2 步:添加 x 和 y。

第 3 步:將 z 乘以 x 和 y 的總和。

最後,我們得到的結果是“9”。

除了我們分配變量的節點外,該圖還有兩個節點——一個用於加法運算,另一個用於乘法運算。 因此,總共有五個節點。

TensorFlow 中的基本編程元素

在 TensorFlow 中,我們可以將數據分配給三種不同類型的數據元素——常量、變量和占位符。

讓我們看看這些數據元素中的每一個代表什麼。

1. 常數

從名稱可以看出,常量是具有不變值的參數。 在 TensorFlow 中,使用命令tf.constant()定義常量 在計算過程中,常數的值不能改變。

這是一個例子:

c = tf.constant(2.0,tf.float32)

d = tf.constant(3.0)

打印 (c,d)

2.變量

變量允許向圖形添加新參數。 tf.variable ()命令定義了一個在會話中運行圖形之前必須初始化的變量。

這是一個例子:

Y = tf.Variable([.4],dtype=tf.float32)

a = tf.Variable([-.4],dtype=tf.float32)

b = tf.placeholder(tf.float32)

線性模型 = Y*b+a

3.佔位符

使用佔位符,可以從外部將數據輸入模型。 它允許稍後分配值。 命令tf.placeholder()定義了一個佔位符。

這是一個例子:

c = tf.placeholder(tf.float32)

d = c*2

結果 = sess.run(d,feed_out={c:3.0})

佔位符主要用於輸入模型。 使用變量名(上例中的變量名是 feed_out)將來自外部的數據饋送到圖形中。 隨後在運行會話時,我們指定如何將數據提供給模型。

會話示例:

圖的執行是通過調用會話來完成的。 運行一個會話來評估圖形的節點,稱為 TensorFlow 運行時。 命令sess = tf.Session()創建一個會話。

例子:

x = tf.constant(3.0)

y = tf.constant(4.0)

z = x+y

sess = tf.Session() #啟動會話

print(sess.run(z)) #評估張量z

在上面的示例中,有三個節點——x、y 和 z。 節點“z”是進行數學運算的地方,隨後得到結果。 在創建會話並運行節點 z 後,首先將創建節點 x 和 y。 然後,加法操作將在節點 z 處進行。 因此,我們將獲得結果“7”。

借助 upGrad 提升您在 ML 和深度學習方面的職業發展

尋找了解更多關於什麼是 TensorFlow的最佳地點 那麼upGrad將在您的學習之旅中為您提供幫助。

upGrad 的學習者基礎覆蓋 85 多個國家/地區,是南亞最大的高等教育科技平台,已影響全球超過 500,000 名在職專業人士。 憑藉世界一流的教師、與行業合作夥伴的合作、最新的技術和最新的教學實踐,upGrad 確保為其全球 40,000 多名付費學習者提供有益健康和身臨其境的學習體驗。

機器學習和深度學習高級證書課程是一學術嚴謹且與行業相關的 6 個月課程,涵蓋深度學習的概念。

節目亮點:

  • 來自 IIIT 班加羅爾的聲望認可
  • 240 多個小時的內容,包括 5 個以上的案例研究和項目、24 個以上的現場會議和 15 個以上的專家輔導課程
  • 全面覆蓋 12 種工具、語言和庫(包括 TensorFlow)
  • 360 度職業幫助、指導課程和點對點網絡機會

upGrad 的機器學習和人工智能理學碩士課程為期 18 個月,面向那些希望通過先進的機器學習和雲技術學習和提升自身技能的人。

節目亮點:

  • 利物浦約翰摩爾斯大學和印度理工學院馬德拉斯分校享有盛譽
  • 650 多個小時的內容,包括 25 多個案例研究和項目、20 多個現場會議和 8 多個編碼作業
  • 全面覆蓋 7 種工具和編程語言(包括 TensorFlow)
  • 360 度職業幫助、指導課程和點對點網絡機會

結論

機器學習和人工智能不斷發展。 曾經科幻電影的主題現在已成為現實。 從 Netflix 電影推薦和虛擬助手到自動駕駛汽車和藥物發現,機器學習影響著我們生活的方方面面。 此外,借助 TensorFlow 等工具,機器學習的創新達到了新的高度。 開源庫無疑是開發人員和創新機器學習驅動技術的新興專業人士的福音。

你還在等什麼? 今天就開始與 upGrad 一起學習吧!

TensorFlow 是用來做什麼的?

TensorFlow Python 是一個開源平台,可讓開發人員創建大規模的神經網絡。 TensorFlow 的一些主要用例包括基於文本的應用程序(例如欺詐檢測)、語音識別、圖像識別、視頻檢測和時間序列數據分析。

TensorFlow 是用 Python 還是 C++ 編寫的?

TensorFlow 允許使用 Python、R、C 和 C++ 等各種語言來實現前端 API。 但是,TensorFlow 中的運行時是使用 C++ 語言編寫的。

TensorFlow 需要編碼嗎?

由於 TensorFlow 是一個用於機器學習的開源庫,因此需要掌握四個核心領域。 雖然編碼技能是必須的,但機器學習教育的其他關鍵組成部分是數學和統計學、機器學習理論以及從頭開始構建機器學習項目的實踐經驗。