人工智能-機器學習-深度學習-深度學習框架TensorFlow之Tensor

基本概念

TensorFlow 中的 Tensor 表示張量,是多維數組、多維列表,用階表示張量的維數。 0 階張量叫做標量,表示的是一個單獨的數,如 123; 1 階張量叫作向量,表示的是一個一維數組如[1,2,3]; 2 階張量叫作矩陣,表示的是一個二維數組,它可以有 i 行 j 列個元素,每個元素用它的行號和列號共同索引到,如在[[1,2,3],[4,5,6],[7,8,9]]中, 2 的索引即爲第 0 行第 1 列。張量的階數與方括號的數量相同, 0 個方括號即爲 0 階張量, 1 個方括號即爲 1 階張量。故張量可以表示0 階到 n 階的數組。

在這裏插入圖片描述
也可以通過 reshape 的方式得到更高維度數組,舉例如下:

import  tensorflow as tf
import  numpy as np
c = np.arange(24).reshape(2,4,3)
print(c)

在這裏插入圖片描述
張量元素的數據類型
在這裏插入圖片描述
創建張量

創建Tensor對象,張量由Tensor類實現,每個張量都是一個Tensor對象
tf.constant()函數:創建張量
tf.constant(value, dtype, shape)
1.value:(張量內容)數字/Python列表/NumPy數組
2.dtype: 元素的數據類型(可選)
3.shape: 張量的形狀

創建張量有若干種不同的方法:
(1)參數爲Python列表,不指定數據類型

import  tensorflow as tf
a=tf.constant([[1,2],[3,4],[4,6]])
print(a)

在這裏插入圖片描述
會輸出張量內容、形狀與數據類型。創建了一個二維張量,第一個維度有兩個元素,第二個維度
有三個元素,並且數據類型默認爲int32

(2)參數爲Python列表,指定數據類型

a=tf.constant([[1,2],[3,4],[4,6]],dtype=tf.int64)
print(a)

在這裏插入圖片描述
此時dtype變成了我們指定的int64,其餘都一樣。
注:去掉 dtype 項,不同電腦環境不同導致默認值不同,可能導致後續程序 bug,所以我建議創建張量的時候,最好帶上數據類型,以免造成不必要的麻煩。

(3)參數爲數字

a=tf.constant(1.0)

在這裏插入圖片描述
(4)參數爲字符串

a=tf.constant("Hello,World")

在這裏插入圖片描述
(5)參數爲bool類型

a=tf.constant(True)

在這裏插入圖片描述
bool值可以放入數組中,再傳給創建張量函數

a=tf.constant([True,False])

在這裏插入圖片描述

(6)參數爲NumPy數組

此時可以通過如下函數將 numpy 格式化爲 Tensor 格式: tf. convert_to_tensor(數據名, dtype=數據類型(可選))

a = np.arange(0, 5)
b = tf.convert_to_tensor( a, dtype=tf.int64 )
print(a)
print(b)

在這裏插入圖片描述
可見,將 numpy 格式的 a 轉換成了 Tensor 格式的 b。

(7)其它創建張量的方法
7-1. tf. zeros(維度)創建全爲 0 的張量

a = tf.zeros([2, 3])

在這裏插入圖片描述
創建了一個二維張量,第一個維度有兩個元素,第二個維度有三個元素,元素的內容全是 0

7-2. tf.ones(維度)創建全爲 1 的張量

a=tf.ones(4)

在這裏插入圖片描述
創建了一個一維張量,裏邊有 4 個元素,內容全是 1

7-3. tf. fill(維度,指定值)創建全爲指定值的張量

tf.fill([2, 2], 9)

在這裏插入圖片描述
創建了一個兩行兩列的二維張量,第一個維度有兩個元素,第二個維度也有兩個元素,內容都是 9。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章