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
Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!

- Author
- More