目錄
?
一、什么是Tensor?
二、Tensorflow常見數據類型
三、Tensorflow常見屬性device\cpu\gpu\ndim\shape\rank等
1、創建一個tensor
1)tf.constant()
2)tf.Variable()
2、判斷一個變量是否為tensor張量
?3、生成不同設備(cpu,gpu)上的tensor
4、判斷一個tensor工作的設備
5、cpu和gpu不同設備上tensor的轉換
6、tensor載體上的數據和numpy庫上的數據的相互轉換
7、判斷變量的數據類型
8、判斷變量的維度
?9、tensor下不同數據類型之間進行轉換
一、什么是Tensor?
Tensor實際上就是Tensorflow中的數據載體,可以囊括所有的數據類型,如標量、矩陣、向量等
專門為神經網絡中深度學習設計的一個框架中的數據載體
二、Tensorflow常見數據類型
import tensorflow as tf
三、Tensorflow常見屬性device\cpu\gpu\ndim\shape\rank等
1、創建一個tensor
具體可見:《【tensorflow】——創建tensor的方法》
1)tf.constant()
a=tf.constant(數據)
2)tf.Variable()
這個是專門為神經網絡的參數進行設置的一個數據類型,它含有兩個屬性,一個是name,一個是train able
a = tf.range(4)#[0,1,2,3]b = tf.Variable(a,name = "變量名")b.nameb.trainable#返回True,表示是可以訓練的變量,系統會自動對該變量的梯度進行監督(watch)
?
2、判斷一個變量是否為tensor張量
import tensorflow as tftf.is_tensor(變量名)#是tensor返回True,否則返回False
?3、生成不同設備(cpu,gpu)上的tensor
import tensorflow as tf#創建cpu設備上的tensor變量a
with tf.device("cpu"):a=tf.constant(1)#創建gpu設備上的tensor變量a
with tf.device("gpu"):b=tf.constant(1.1)
4、判斷一個tensor工作的設備
tf.device(變量名)#返回的是一個字符串,含有當前tensor所工作的環境設備
5、cpu和gpu不同設備上tensor的轉換
不同設備上的變量有些操作是不能進行的,如a,b的加法,就需要在同一個設備環境下,才能進行,否則會報錯,這時候就需要使用到不同設備間tensor的轉換了
#假設a是cpu上的tensor,b是gpu上的tensoraa = a.gpu()#返回的是gpu上的tensor,當然不會影響原來的tensor a所在的設備環境bb = b.cpu()#返回的是cpu上的tensor,當然不會影響原來的tensor b所在的設備環境
6、tensor載體上的數據和numpy庫上的數據的相互轉換
這是兩個數據庫,可以看成是數據載體,都可以生成不同類型的數據,但是要想數據間進行操作,必須轉換成同一個載體下的數據才能進行操作
import tensorflow as tf#tensor轉換為numpy變量名.numpy()#如果tensor是一個標量scalar的話,也可以通過下面的方法進行轉換為numpyint(a)
float(a)#numpy轉換為tensortf.convert_to_tensor(變量名,dtype=tf.數據類型)
7、判斷變量的數據類型
a.dtype,b.dtype,c.dtyp#返回三個變量的數據類型(tf.float32,tf.bool,tf.string)#表示在tensor數據載體下的各種數據類型#要是想驗證某一個變量是否為具體的數據類型,可以通過以下方法a.dtype == tf.float32#返回布爾類型,是返回True,不是返回False
8、判斷變量的維度
維度是指是標量還是向量還是矩陣抑或是更高維的數據
b.ndim#返回的是一個標量,一個值,等于維度tf.rank(b)#返回的是一個含有變量b相關信息的tensor
?
9、tensor下不同數據類型之間進行轉換
tf.cast(變量名,dtype=需要轉換成的數據類型)#例如tf.cast(aa,dtype = float32/double/int32)
布爾型和整型的轉化
?
?