日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【TensorFlow2.0】(1) tensor数据类型,类型转换

發布時間:2023/11/27 生活经验 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【TensorFlow2.0】(1) tensor数据类型,类型转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各位同學好,今天和大家分享一下TensorFlow2.0中的tensor數據類型,以及各種類型之間的相互轉換方法。

1. tf.tensor 基礎操作

scaler標量:1.2

vector向量:[1.2]、[1.1,2.2,3.3]? ? ? 注意:此處的[1.2]是一維的,而1.2是0維的

matrix矩陣:[[1.1,2.2],[3.3,4.4]]

tensor張量:代表任意維度的數據


1.1 創建一個tensor

創建方法: tf.constant(value, shape=維度, dtype=數據類型, verify_shape=False)

value可以為數值、列表、字符串、布爾型

shape形狀,指維數以及每一維的大小。當第一個參數value是數字時,張量的所有元素都會用該數字填充,shape=[2, 3]。當第一個參數value是一個列表時,注意列表的長度必須小于等于參數shape的大小(即各維大小的乘積)

shape指定數據類型,如dtype=tf.float64

verify_shape如果修改為True的話,表示檢查value的形狀與shape是否相符,如果不符會報錯。

a1 = tf.constant(1,shape=[2,2])   # 整型tensor,2行2列都是1
a2 = tf.constant([1,2],dtype=tf.float32)  # 浮點型tensor,指定數據類型
a3 = tf.constant(True)  #布爾類型
a4 = tf.constant('keep coding')

2.2 tensor和numpy之間的轉換

方法: tensor變量.numpy()

將tensor類型變成數組類型顯示

# ==2== 和numpy之間的轉換
a1.numpy()
a5 = tf.range(4) #定義0-3的tensor列表
a5.numpy()

tensor型數據是一個標量,即只有一個值時,可以直接使用類型轉換函數:int()、float()

b = tf.ones([])  # 1
b.numpy() # 輸出 1.0
int(b)  # int類型的 1
float(b) # float類型的 1

2.3 查看tensor維度及大小

查看維度,返回int類型: tensor名.ndim

查看維度,返回tensor類型: tf.rank(tensor名)

查看tensor的形狀: tensor名.shape

# 定義一個一維tensor
a5 = tf.range(4)
a5.ndim  # 返回 1
tf.rank(a5) # 返回 1
a6.shape # 返回(4,)


2.4 判斷是不是tensor類型

判斷變量是否屬于該數據類型,返回布爾類型: isinstance(變量, 數據類型)? ?

判斷變量是否是tensor類型,返回布爾類型: tf.is_tensor(變量)

查看變量數據類型,返回數據類型: 變量.dtype

s1 = tf.constant([1.])
s2 = tf.constant([True,False])
s3 = tf.constant('hello')
s4 = np.arange(4)
# ==1== isinstance(變量,數據類型) 
# 返回布爾類型
t1 = isinstance(s1,tf.Tensor)
# ==2== tf.is_tensor(變量)
t2 = tf.is_tensor(s2)
t4 = tf.is_tensor(s4)   #屬于int型數據
# ==3== 變量.dtype
# 查看數據類型
t3 = s3.dtype


2. 數據間類型轉換

2.1 其他類型轉到tensor類型

轉到tensor類型方法:?tf.convert_to_tensor(變量, dtype=tf.數據類型)

a = np.arange(5)  #創建numpy類型數據
a.dtype  #int32類型的數據
# ==1== 轉換到 tensor 數據
b = tf.convert_to_tensor(a)
b.dtype  #tf.int32類型

2.2?各種類型間的轉換

方法: tf.cast(變量, dtype = tf.指定數據類型)

a = np.arange(5) #int32類型
b = tf.cast(a,dtype=tf.float32)
# 原來b是tf.int32類型,現在變為tf.float32類型

布爾型和整形之間的轉換

整型轉布爾:0轉為False,大于0轉為True

布爾轉整型:true轉為1,false轉為0

定義的a1為[0,2,5],最終a3為[0,1,1]

# 定義整形tensor
a1 = tf.constant([0,2,5])   # int32         [0,2,5]
# 轉為布爾型tensor
a2 = tf.cast(a1,dtype=tf.bool)  # bool      [False,True,True]
# 再將布爾型轉回整形
a3 = tf.cast(a2,dtype=tf.int32)  # int32    [0,1,1]

2.3? tf.Variable類型

tf.Variable 類型屬于神經網絡參數類型,屬于tensor類型,記錄梯度相關信息,先做了解,后續會詳談。

tensor類型轉為Variable類型: tf.Variable(tensor變量)

a = tf.range(5)  # 定義一個tensor數據
b = tf.Variable(a)  # 變成Variable類型數據 
b.trainable  # 返回True
# 查看數據類型
tf.is_tensor(b)  #True,屬于tensor

總結

以上是生活随笔為你收集整理的【TensorFlow2.0】(1) tensor数据类型,类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。