上一篇簡單介紹了tensorflow的基本操作,這一篇介紹一些常用的函數。
-
tf.constant()
tf.constant ( value , dtype = None , shape = None , name = 'Const' , verify_shape = False )
dtype:張量元素的類型
shape:張量的形狀
name:張量的可選名稱
verify_shape:布爾值可以驗證數值的形狀(不常用)
返回:常數張量
用來創建常數張量,value和shape一般不一塊使用。
t_1 = tf.constant([1, 2, 3, 4]) # 返回張量[1, 2, 3, 4] t_2 = tf.constant(-1, shape=[2,3]) # 返回張量[[-1,-1,-1], [-1,-1,-1]]
-
tf.Variable()
定義變量
v_1 = tf.Variable([0, 0, 0])
-
tf.eye()
創建tensorflow單位矩陣
tf.eye( num_rows, num_columns=None, batch_shape=None, dtype=tf.float32, name=None )
num_rows:單位矩陣行數
num_colums:單位矩陣的列數,默認等於行數
batch_shape:如果提供,返回的張量將具有該形狀的主要批次維度
返回:一定形狀的單位陣tf.eye(2) >>[[1, 0], [0, 1]] tf.eye(2, 3) >>[[1, 0, 0], [0, 1, 0]]
-
tf.zeros()創建一定形狀的零矩陣
tf.zeros( shape, dtype=tf.float32, name=None )
shape:矩陣的形狀
返回:元素全零張量 -
tf.shape([2, 3]) >>[[0, 0, 0], [0, 0, 0]]
-
tf.zeros_like()
創建與某個張量形狀一樣的全零張量
tf.zeros_like( tensor, dtype=None, name=None, optimize=True )
tensor:一個tf 張量,會創建與這個張量形狀一樣的全零張量
optimize:如果為true,則嘗試靜態確定“張量”的形狀並將其編碼為常量
返回:元素全零張量tensor = tf.constant([[1, 2, 3], [4, 5, 6]]) tf.zeros_like(tensor) # [[0, 0, 0], [0, 0, 0]],與tensor的形狀相同
-
tf.ones()
創建元素是全是1的張量
tf.ones( shape, dtype=tf.float32, name=None )
-
tf.ones_like()
創建與某個張量形狀相同的全1張量,參數與 zeres_like() 相同
ones_like( tensor, dtype=None, name=None, optimize=True )
-
tf.linspace() / tf.lin_space()
兩個函數相同,只是個別名,創建在一定范圍內從初值到終值等差分布的數列的n個數
lin_space( start, stop, num, name=None )
start:范圍的開始值,必須是以下類型之一:float32,float64
stop:范圍的結束值,必須和start類型相同
num:數的個數
返回:一個等差排列的張量tf.linspace(10.0, 12.0, 3, name="linspace") => [ 10.0 11.0 12.0]
-
tf.range()
創建從a到b的增量是n的等差數列,不包括b,默認a是0,默認n是1
tf.range(limit, delta=1, dtype=None, name='range') tf.range(start, limit, delta=1, dtype=None, name='range')
參數兩種形式,如果沒給start 只給limit,默認是start0;如果給了start 和limit ,就創建從start到limit的等差數列。增量默認是1。
返回一維張量。tf.range(3) => [0, 1, 2] tf.range(1, 5) => [1, 2, 3, 4] tf.range(3, 18, 3) => [3, 6, 9, 12, 15]