python中tensorflow的函数简单用法(未完)
tf.nn.softmax
Softmax的含義:將一個(gè)N*1的向量歸一化為(0,1)之間的值,由于其中采用指數(shù)運(yùn)算,使得向量中數(shù)值較大的量特征更加明顯。
Softmax輸出的就是該樣本屬于各個(gè)類的概率。具體的原理就不詳述了。
參考博客:https://blog.csdn.net/wgj99991111/article/details/83586508
圖片來(lái)源
tf.argmax
tf.argmax 本質(zhì)上就是numpy.argmax,因?yàn)閠ensorflow2.0使用的是numpy的API。argmax中一般有兩個(gè)參數(shù),一般有兩種形式:argmax(array,1)和argmax(array,0)。那么這兩種形式有什么區(qū)別呢?
argmax中第二個(gè)參數(shù)也就是axis,等于1或者等于0的時(shí)候,所表達(dá)的含義是不同的。具體看例子:
當(dāng)axis=0的時(shí)候,可以近似的看成對(duì)array的列進(jìn)行比較,返回的是第i列最大位置的索引。
test[0] = array([1, 2, 3]) test[1] = array([2, 3, 4]) test[2] = array([5, 4, 3]) test[3] = array([8, 7, 2]) # output : [3, 3, 1]當(dāng)axis=1的時(shí)候,可以近似的看成對(duì)array的行進(jìn)行比較,返回的是第i行最大位置的索引。
test[0] = array([1, 2, 3]) #2 test[1] = array([2, 3, 4]) #2 test[2] = array([5, 4, 3]) #0 test[3] = array([8, 7, 2]) #0tf.cast
tf.cast()函數(shù)的作用是執(zhí)行 tensorflow 中張量數(shù)據(jù)類型轉(zhuǎn)換,比如讀入的圖片如果是int8類型的,一般在要在訓(xùn)練前把圖像的數(shù)據(jù)格式轉(zhuǎn)換為float32。
cast函數(shù)的定義為:cast(x, dtype, name=None)
其中:
x代表輸入的數(shù)據(jù),也就是待轉(zhuǎn)換的數(shù)據(jù)。
dtype代表目標(biāo)數(shù)據(jù)類型。
name代表可選參數(shù),定義操作的名稱。
tf.equal
tf.equal()用法:equal(x, y, name=None)
equal,相等的意思。顧名思義,就是判斷,x, y 是不是相等,它的判斷方法不是整體判斷,而是逐個(gè)元素進(jìn)行判斷,如果相等就是True,不相等,就是False。由于是逐個(gè)元素判斷,所以x,y 的維度要一致。
tf.reduce_sum
tf.reduce_sum函數(shù)是用來(lái)求和的,可以通過(guò)調(diào)整 axis =0,1 的維度來(lái)控制求和維度。
具體操作如下:
輸出如下:
tf.Tensor(6, shape=(), dtype=int32) tf.Tensor([2 2 2], shape=(3,), dtype=int32) tf.Tensor([3 3], shape=(2,), dtype=int32) tf.Tensor( [[3][3]], shape=(2, 1), dtype=int32) tf.Tensor(6, shape=(), dtype=int32)tf.Variable
tf.Variable(a,b),參數(shù)a是初始化參數(shù),b是可自定義的變量名稱,可以理解為將b這個(gè)變量初始化為a。
具體操作如下:
結(jié)果如下:
<tf.Variable 'v1:0' shape=(2, 5) dtype=float32, numpy= array([[ 99.9834 , 100.19699 , 100.11848 , 98.857735, 98.71112 ],[100.82833 , 99.306725, 99.808426, 100.53035 , 100.47631 ]],dtype=float32)> <tf.Variable 'v2:0' shape=() dtype=int32, numpy=78> <tf.Variable 'v3:0' shape=(3, 5) dtype=float32, numpy= array([[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.]], dtype=float32)>tf.constant
這個(gè)函數(shù)就是tensorflow用來(lái)創(chuàng)建變量的函數(shù),在創(chuàng)建的時(shí)候可以規(guī)定變量的shape。constant函數(shù)的API原型規(guī)定如下:
tf.constant(value,dtype=None,shape=None,name='Const',verify_shape=False )具體的請(qǐng)參考這個(gè)博客
tf.convert_to_tensor
顧名思義這是一個(gè)將numpy或者list類型轉(zhuǎn)換為tensor的函數(shù),具體用法如下:
tf.fill
創(chuàng)建一個(gè)維度為dims,值為value的tensor對(duì)象。該操作會(huì)創(chuàng)建一個(gè)維度為dims的tensor對(duì)象,并將其值設(shè)置為value,該tensor對(duì)象中的值類型和value一致。
tf.gather
tf.gather(a,b,c=0 ),從a的c維根據(jù)b的參數(shù)值獲取切片.這種方法適用于索引混亂排列的情況
圖片來(lái)源
下圖中a的維度為[4,35,8]
tf.gather_nd
tf.gather_nd(params,indices,name=None )按照indices的格式從params中抽取切片(合并為一個(gè)Tensor)
tf.boolean_mask
函數(shù)原型:tf.boolean_mask(tensor,mask,name=‘boolean_mask’,axis=None)
跟numpy里面的tensor[mask]具有相同的功能。
參數(shù):tensor是N維度的tensor,mask是K維度的,注意K小于等于N,name可選項(xiàng)也就是這個(gè)操作的名字,axis是一個(gè)0維度的int型tensor,表示的是從參數(shù)tensor的哪個(gè)axis開(kāi)始mask,默認(rèn)的情況下,axis=0表示從第一維度進(jìn)行mask,因此K+axis小于等于N。
返回的是N-K+1維度的tensor,也就是mask為T(mén)rue的地方保存下來(lái)。
一般來(lái)說(shuō),0<dim(mask)=K<=dim(tensor),mask的大小必須匹配參數(shù)tensor的shape的前K維度。
tf.concat
一篇講解超詳細(xì)的博客
tf.stack
tf.concat是沿某一維度拼接shape相同的張量,拼接生成的新張量維度不會(huì)增加。而tf.stack是在新的維度上拼接,拼接后維度加1.對(duì)于做tf.stack的兩個(gè)tensor,維度必須全都一樣;而tf.concat就沒(méi)有這樣的限制。
tf.split
tf.split()函數(shù)的API如下所示:
tf.split(value,num_or_size_splits,axis=0,num=None,name='split' )其中函參數(shù)的具體含義為:
value:準(zhǔn)備切分的張量
num_or_size_splits:準(zhǔn)備切成幾份
axis : 準(zhǔn)備在第幾個(gè)維度上進(jìn)行切割
其中分割方式分為兩種
總結(jié)
以上是生活随笔為你收集整理的python中tensorflow的函数简单用法(未完)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Win10新应用商店beta版无法打开或
- 下一篇: 基于python实现将一个文件夹中的图片