深度學(xué)習(xí)--TensorFlow2.0--基本使用(三)

一、fetches和feeds

1. fetches

我們有時候需要在操作里面取一些輸出,其實就是在執(zhí)行圖的過程中在run()函數(shù)里面?zhèn)魅胍粋€tensor就行匀钧,然后就會輸出tesnor的結(jié)果。

a=tf.constant([1.,2.,3.],name="a")
b=tf.constant([4.,5.,6.],name="b")
c=tf.constant([0.,4.,2.],name="c")
add=a+b
mul=add*c
with tf.Session() as sess:
    #fetch  獲取對應(yīng)張量
    result=sess.run([a,b,c,add,mul])
    print("fetch :\n",result)

2. feeds

feed的動作一般和placeholder()函數(shù)一起用,前面說過梗肝,placeholder()起到占位的作用。

input1=tf.placeholder(tf.float32)
input2=tf.placeholder(tf.float32)
output=tf.multiply(input1,input2)

with tf.Session() as session:
    #喂數(shù)據(jù) feed_dict
    result_feed=session.run(output,feed_dict={input1:[2.],input2:[3.]})
    print("result:",result_feed)

二铺董、基本數(shù)學(xué)函數(shù)

Tensor 之間的運算規(guī)則
相同大小 Tensor 之間的任何算術(shù)運算都會將運算應(yīng)用到元素級
不同大小 Tensor(要求dimension 0 必須相同) 之間的運算叫做廣播(broadcasting)
Tensor 與 Scalar(0維 tensor) 間的算術(shù)運算會將那個標(biāo)量值傳播到各個元素
Note: TensorFLow 在進(jìn)行數(shù)學(xué)運算時巫击,一定要求各個 Tensor 數(shù)據(jù)類型一致

# 算術(shù)操作符:+ - * / % 
tf.add(x, y, name=None)        # 加法(支持 broadcasting)
tf.subtract(x, y, name=None)   # 減法
tf.multiply(x, y, name=None)   # 乘法
tf.divide(x, y, name=None)     # 浮點除法, 返回浮點數(shù)(python3 除法)
tf.mod(x, y, name=None)        # 取余
 
 
# 冪指對數(shù)操作符:^ ^2 ^0.5 e^ ln 
tf.pow(x, y, name=None)        # 冪次方
tf.square(x, name=None)        # 平方
tf.sqrt(x, name=None)          # 開根號,必須傳入浮點數(shù)或復(fù)數(shù)
tf.exp(x, name=None)           # 計算 e 的次方
tf.log(x, name=None)           # 以 e 為底精续,必須傳入浮點數(shù)或復(fù)數(shù)
 
 
# 取符號坝锰、負(fù)、倒數(shù)重付、絕對值顷级、近似、兩數(shù)中較大/小的
tf.negative(x, name=None)      # 取負(fù)(y = -x).
tf.sign(x, name=None)          # 返回 x 的符號
tf.reciprocal(x, name=None)    # 取倒數(shù)
tf.abs(x, name=None)           # 求絕對值
tf.round(x, name=None)         # 四舍五入
tf.ceil(x, name=None)          # 向上取整
tf.floor(x, name=None)         # 向下取整
tf.rint(x, name=None)          # 取最接近的整數(shù) 
tf.maximum(x, y, name=None)    # 返回兩tensor中的最大值 (x > y ? x : y)
tf.minimum(x, y, name=None)    # 返回兩tensor中的最小值 (x < y ? x : y)
 
 
# 三角函數(shù)和反三角函數(shù)
tf.cos(x, name=None)    
tf.sin(x, name=None)    
tf.tan(x, name=None)    
tf.acos(x, name=None)
tf.asin(x, name=None)
tf.atan(x, name=None)   
 
 
# 其它
tf.div(x, y, name=None)  # python 2.7 除法, x/y-->int or x/float(y)-->float
tf.truediv(x, y, name=None) # python 3 除法, x/y-->float
tf.floordiv(x, y, name=None)  # python 3 除法, x//y-->int
tf.realdiv(x, y, name=None)
tf.truncatediv(x, y, name=None)
tf.floor_div(x, y, name=None)
tf.truncatemod(x, y, name=None)
tf.floormod(x, y, name=None)
tf.cross(x, y, name=None)
tf.add_n(inputs, name=None)  # 輸入:Tensor對象列表确垫,每個對象具有相同的形狀和類型
tf.squared_difference(x, y, name=None)

三弓颈、Matrix矩陣操作

# 矩陣乘法(tensors of rank >= 2)
tf.matmul(a, b, transpose_a=False, transpose_b=False,    adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None)
 
# 轉(zhuǎn)置,可以通過指定 perm=[1, 0] 來進(jìn)行軸變換
tf.transpose(a, perm=None, name='transpose')
 
# 在張量 a 的最后兩個維度上進(jìn)行轉(zhuǎn)置
tf.matrix_transpose(a, name='matrix_transpose')
# Matrix with two batch dimensions, x.shape is [1, 2, 3, 4]
# tf.matrix_transpose(x) is shape [1, 2, 4, 3]
 
# 求矩陣的跡
tf.trace(x, name=None)
 
# 計算方陣行列式的值
tf.matrix_determinant(input, name=None)
 
# 求解可逆方陣的逆删掀,input 必須為浮點型或復(fù)數(shù)
tf.matrix_inverse(input, adjoint=None, name=None)
 
# 奇異值分解
tf.svd(tensor, full_matrices=False, compute_uv=True, name=None)
 
# QR 分解
tf.qr(input, full_matrices=None, name=None)
 
# 求張量的范數(shù)(默認(rèn)2)
tf.norm(tensor, ord='euclidean', axis=None, keep_dims=False, name=None)
 
# 構(gòu)建一個單位矩陣, 或者 batch 個矩陣翔冀,batch_shape 以 list 的形式傳入
tf.eye(num_rows, num_columns=None, batch_shape=None, dtype=tf.float32, name=None)
# Construct one identity matrix.
tf.eye(2)
==> [[1., 0.],
     [0., 1.]]
 
# Construct a batch of 3 identity matricies, each 2 x 2.
# batch_identity[i, :, :] is a 2 x 2 identity matrix, i = 0, 1, 2.
batch_identity = tf.eye(2, batch_shape=[3])
 
# Construct one 2 x 3 "identity" matrix
tf.eye(2, num_columns=3)
==> [[ 1.,  0.,  0.],
     [ 0.,  1.,  0.]]
 
# 構(gòu)建一個對角矩陣,rank = 2*rank(diagonal)
tf.diag(diagonal, name=None)
# 'diagonal' is [1, 2, 3, 4]
tf.diag(diagonal) ==> [[1, 0, 0, 0]
                       [0, 2, 0, 0]
                       [0, 0, 3, 0]
                       [0, 0, 0, 4]] 
# 其它
tf.diag_part
tf.matrix_diag
tf.matrix_diag_part
tf.matrix_band_part
tf.matrix_set_diag
tf.cholesky
tf.cholesky_solve
tf.matrix_solve
tf.matrix_triangular_solve
tf.matrix_solve_ls
tf.self_adjoint_eig
tf.self_adjoint_eigvals

四爬迟、Reduction 歸約操作

# 計算輸入 tensor 所有元素的和橘蜜,或者計算指定的軸所有元素的和
tf.reduce_sum(input_tensor, axis=None, keep_dims=False, name=None)
# 'x' is [[1, 1, 1]
#         [1, 1, 1]]
tf.reduce_sum(x) ==> 6
tf.reduce_sum(x, 0) ==> [2, 2, 2]
tf.reduce_sum(x, 1) ==> [3, 3]
tf.reduce_sum(x, 1, keep_dims=True) ==> [[3], [3]]  # 維度不縮減
tf.reduce_sum(x, [0, 1]) ==> 6
  
# 計算輸入 tensor 所有元素的均值/最大值/最小值/積/邏輯與/或
# 或者計算指定的軸所有元素的均值/最大值/最小值/積/邏輯與/或(just like reduce_sum)
tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None)
tf.reduce_max(input_tensor, axis=None, keep_dims=False, name=None)
tf.reduce_min(input_tensor, axis=None, keep_dims=False, name=None)
tf.reduce_prod(input_tensor, axis=None, keep_dims=False, name=None)
tf.reduce_all(input_tensor, axis=None, keep_dims=False, name=None)  # 全部滿足條件
tf.reduce_any(input_tensor, axis=None, keep_dims=False, name=None) #至少有一個滿足條件
 
-------------------------------------------
# 分界線以上和 Numpy 中相應(yīng)的用法完全一致
-------------------------------------------
  
# inputs 為一 list, 計算 list 中所有元素的累計和,
# tf.add(x, y付呕, name=None)只能計算兩個元素的和计福,此函數(shù)相當(dāng)于擴展了其功能
tf.accumulate_n(inputs, shape=None, tensor_dtype=None, name=None)
  
# 計算log(sum(exp(張量尺寸的元素)))
tf.reduce_logsumexp(input_tensor, axis=None, keep_dims=False, name=None)
  
# 計算張量維度的非零元素數(shù)
tf.count_nonzero(input_tensor, axis=None, keep_dims=False, name=None)

五、tensor大小 比較


#(1)相等equal (element-wise)
tf.equal(x, y, name=None) #Returns the truth value of (x == y) element-wise.
 
#(2)不等not_equal  
tf.not_equal(x, y, name=None)
 
#(3)其他比較
tf.less(x, y, name=None)
tf.less_equal(x, y, name=None)
tf.greater(x, y, name=None)
tf.greater_equal(x, y, name=None)

六徽职、恒等映射

#Return張量與輸入張量或值具有相同的形狀和內(nèi)容象颖。
#恒等映射
tf.identity(input, name=None)

七、類型轉(zhuǎn)化

tf.cast(x, dtype, name=None)
#Casts a tensor to a new type.
 
#For example:
# tensor `a` is [1.8, 2.2], dtype=tf.float
#tf.cast(a, tf.int32) ==> [1, 2]  dtype=tf.int32

八姆钉、序列比較與索引提取

# 比較兩個 list 或者 string 的不同说订,并返回不同的值和索引
tf.setdiff1d(x, y, index_dtype=tf.int32, name=None)
 
# 返回 x 中的唯一值所組成的tensor 和原 tensor 中元素在現(xiàn) tensor 中的索引
tf.unique(x, out_idx=None, name=None)
 
# x if condition else y, condition 為 bool 類型的抄瓦,可用tf.equal()等來表示
# x 和 y 的形狀和數(shù)據(jù)類型必須一致
tf.where(condition, x=None, y=None, name=None)
 
# 返回沿著坐標(biāo)軸方向的最大/最小值的索引
tf.argmax(input, axis=None, name=None, output_type=tf.int64)
tf.argmin(input, axis=None, name=None, output_type=tf.int64)
 
# x 的值當(dāng)作 y 的索引,range(len(x)) 索引當(dāng)作 y 的值
# y[x[i]] = i for i in [0, 1, ..., len(x) - 1]
tf.invert_permutation(x, name=None)
 
# 其它
tf.edit_distance
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陶冷,一起剝皮案震驚了整個濱河市钙姊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌埂伦,老刑警劉巖煞额,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沾谜,居然都是意外死亡膊毁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門基跑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來婚温,“玉大人,你說我怎么就攤上這事媳否≌っ” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵逆日,是天一觀的道長嵌巷。 經(jīng)常有香客問我,道長室抽,這世上最難降的妖魔是什么搪哪? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮坪圾,結(jié)果婚禮上晓折,老公的妹妹穿的比我還像新娘。我一直安慰自己兽泄,他們只是感情好漓概,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著病梢,像睡著了一般胃珍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜓陌,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天觅彰,我揣著相機與錄音,去河邊找鬼钮热。 笑死填抬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隧期。 我是一名探鬼主播飒责,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼赘娄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宏蛉?” 一聲冷哼從身側(cè)響起遣臼,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎檐晕,沒想到半個月后暑诸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡辟灰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了篡石。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芥喇。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖凰萨,靈堂內(nèi)的尸體忽然破棺而出继控,到底是詐尸還是另有隱情,我是刑警寧澤胖眷,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布武通,位于F島的核電站,受9級特大地震影響珊搀,放射性物質(zhì)發(fā)生泄漏冶忱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一境析、第九天 我趴在偏房一處隱蔽的房頂上張望囚枪。 院中可真熱鬧,春花似錦劳淆、人聲如沸链沼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽括勺。三九已至,卻和暖如春曲掰,著一層夾襖步出監(jiān)牢的瞬間疾捍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工蜈缤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拾氓,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓底哥,卻偏偏與公主長得像咙鞍,于是被迫代替她去往敵國和親房官。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容