Tensor 基本觀念 (3)
前言 & 概述
Tensor 指的是多維度的陣列,是深度學習中最基本的運算元素。本文參考 TensorFlow 官方教學,將 Tensor 的相關介紹,以更簡單易懂的方式介紹給讀者!我們將 Tensor 基本觀念的介紹分為兩個部分:(1)、(2) 與 (3)。
在本篇文章 (3) 中,我們將學習 Tensor 的 DType 與 Broadcasting 概念。
Tensor DType
Tensor 中包含了許多元素,這些元素要有相同的 Data Type,定義在 Tensor 的 dtype 資訊中。我們在建立 Tensor 時,除了給定每個元素的數值外,也應該指定這個 Tensor 的 dtype。
如下圖所示,建立 2 個 dtype 為 float64 與 uint8 的 Tensor。
Broadcasting
Broadcasting 中文稱為「廣播」,可以想成「資料擴散」的一種機制。在學習陣列的操作時,Broadcasting 是相當重要的觀念!TensorFlow 中 Broadcasting 的概念與 Numpy 中的相同,都是指「2 個 Tensor 在進行操作時,形狀 (維度) 小的 Tensor 會被擴大成形狀 (維度) 大的 Tensor」。
以下圖的程式碼為例,x 是 1 維的 Tensor,shape=(4,);y 則是 0 維的 Tensor,shape=()。當我們進行 x+y 時,y 的維度 (形狀) 就會被擴展成 x 的維度 (形狀)。因此,y 會變成 [1, 1, 1, 1]。最後兩者相加的結果就會是 [2, 3, 4, 5]。
我們再舉一個例子說明。以下圖為例,x 的 shape=(3, 1) 而 y 的 shape=(1, 4)。兩者進行運算時,x 會被擴展為 shape=(3, 4),每一個 Column 皆為 [[1], [2], [3]];y 會被擴展為 shape=(3, 4),每一個 Row 皆為 [1, 2, 3, 4]。
x 與 y 的運算將會如下圖所示:
結語
在本篇文章中,我們學習了 Tensor 中 DType 與 Broadcasting 的觀念。透過這 3 篇文章,我們也將 Tensor 基本與重要的觀念介紹完畢。在下一篇文章中,將會開始學習 TensorFlow 中 Variable 的觀念。
👣 👣 👣 我喜歡撰寫程式開發、資料科學領域相關的文章,希望可以透過簡單的文字解釋複雜的觀念!如果你也有興趣可以到我的其他平台逛逛哦!
👉🏻 DataSci Ocean
👉🏻 YouTube
👉🏻 Instagram
系列文章
👉🏻 Tensor 基本觀念 (1)
👉🏻 Tensor 基本觀念 (2)
延伸閱讀
👉🏻 Google Colaboratory 介紹
👉🏻 條件機率 vs 聯合機率
👉🏻 將 Django App 部署到 Heroku on Mac
👉🏻 在 LINE Developers 上建立 LINE Bot