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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tf.pad函数功能介绍

發布時間:2024/9/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tf.pad函数功能介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tf.pad()函數主要是對張量在各個維度上進行填充,該函數的參數如下所示:

pad(tensor,paddings,mode='CONSTANT',name=None )

其中:

tensor是待填充的張量
paddings指出要給tensor的哪個維度進行填充,以及填充方式,要注意的是paddings的rank必須和tensor的rank相同
mode指出用什么進行填充,’CONSTANT’表示用0進行填充(總共有三種填充方式,本文用CONSTANT予以說明pad函數功能)
name就是這個節點的名字了

二維張量(向量)

測試代碼如下:

# 創建一個二維變量,默認執行CONSTANT填充 vct = tf.Variable(tf.ones([3, 4]), name="vct") # 指定填充方式, pad1 = np.array([[1, 2], [3, 4]]) # tf.pad進行填充 vct_pad1 = tf.pad(vct, pad1, name='pad_1') # 創建會話 with tf.Session() as sess:sess.run(tf.global_variables_initializer())print(sess.run(vct))print(sess.run(vct_pad1))

運行結果如下:

上圖是 print(sess.run(vct))的執行結果,創建了一個3行4列的二維矩陣

上圖是print(sess.run(vct_pad1)的執行結果,由圖可得:
????(1) tensor的維度是n,則pad就有n行,因為pad的每一行負責對tensor的某一個維度進行填充.
????(2) 在二維中,pad的第一行對tensor的行進行填充,[1, 2]中的第一個元素表示在tensor上面填充1行,第二個元素表示在tensor下面填充2行.
????(3) 在二維中,pad的第二行對tensor的列進行填充,[3, 4]中的第一個元素表示在tensor左邊填充3列,第二個元素表示在tensor右邊填充4列.
修改一下pad中的數字,再看一下效果,體會一下.

張量(三維)

????測試代碼如下:

tsr = tf.Variable(tf.ones([2, 3, 4]), name="tsr") pad2 = np.array([[0, 0], [1, 2], [3, 4]]) tsr_pad2 = tf.pad(tsr, pad2, name='pad_2')with tf.Session() as sess:sess.run(tf.global_variables_initializer())print(sess.run(tsr))print(sess.run(tsr_pad2))

運行結果如下

上圖所示的是print(sess.run(tsr))的運行結果,我定義了一個張量維度是[2,3,4],從結果直觀理解是,輸出講這個張量處理成了2個向量(3行4列).

上圖所示是print(sess.run(tsr_pad2))的運行結果,[0,0]表示tensor的第一個維度不填充,后面的跟二維張量填充一樣.*

接下來只對tensor的第一維進行填充,看下效果,仍舊是上面的代碼,只是吧pad2那一行改為:

pad2 = np.array([[1, 1], [0, 0], [0, 0]])

運行結果如下:

很明顯,在原來基礎上上下各填充了一個全零二維數組,此時tsr的維度變成[4,3,4].

?

參考博客‘:https://blog.csdn.net/yy_diego/article/details/81563160

總結

以上是生活随笔為你收集整理的tf.pad函数功能介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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