日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中tensorflow的函数简单用法(未完)

發布時間:2023/12/15 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的時候,所表達的含義是不同的。具體看例子:

test = np.array([[1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]]) np.argmax(test, 0)   #輸出:array([3, 3, 1] np.argmax(test, 1)   #輸出:array([2, 2, 0, 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]) #0

tf.cast

tf.cast()函數的作用是執行 tensorflow 中張量數據類型轉換,比如讀入的圖片如果是int8類型的,一般在要在訓練前把圖像的數據格式轉換為float32。
cast函數的定義為:cast(x, dtype, name=None)
其中:
x代表輸入的數據,也就是待轉換的數據。
dtype代表目標數據類型。
name代表可選參數,定義操作的名稱。

prediction = tf.cast(x=prediction,dtype=tf.int32)#將x轉換成int32類型

tf.equal

tf.equal()用法:equal(x, y, name=None)
equal,相等的意思。顧名思義,就是判斷,x, y 是不是相等,它的判斷方法不是整體判斷,而是逐個元素進行判斷,如果相等就是True,不相等,就是False。由于是逐個元素判斷,所以x,y 的維度要一致。

import tensorflow as tf a = [[1,2,3],[4,5,6]] b = [[1,0,3],[1,5,1]] with tf.Session() as sess:print(sess.run(tf.equal(a,b))) [[ True False True][False True False]]

tf.reduce_sum

tf.reduce_sum函數是用來求和的,可以通過調整 axis =0,1 的維度來控制求和維度。
具體操作如下:

x=tf.constant([[1,1,1],[1,1,1]]) print(tf.reduce_sum(x)) print(tf.reduce_sum(x,0)) print(tf.reduce_sum(x,1)) print(tf.reduce_sum(x,1,True)) print(tf.reduce_sum(x,[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。
具體操作如下:

import tensorflow as tfv1=tf.Variable(tf.random.normal(shape=[2,5],mean=100),name='v1') v2=tf.Variable(tf.constant(78),name='v2') v3=tf.Variable(tf.ones(shape=[3,5]),name='v3')print(v1) print(v2) print(v3)

結果如下:

<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 : 準備在第幾個維度上進行切割
其中分割方式分為兩種

  • 如果num_or_size_splits 傳入的 是一個整數,那直接在axis=D這個維度上把張量平均切分成幾個小張量
  • 如果num_or_size_splits 傳入的是一個向量(這里向量各個元素的和要跟原本這個維度的數值相等)就根據這個向量有幾個元素分為幾項。
  • 總結

    以上是生活随笔為你收集整理的python中tensorflow的函数简单用法(未完)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。