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