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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

TensorFlow之conv2d函数解析

發布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow之conv2d函数解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TensorFlow中函數conv2d主要實現了輸入張量與設定卷積核的卷積操作,其函數形式如下:

tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=True,data_format='NHWC',dilations=[1, 1, 1, 1],name=None )

input,filter自然是設定的輸入和卷積核了,參數strides,padding分別決定了卷積操作中滑動步長和圖像邊沿填充的方式。

看下strides官方解釋:

其為長度為4的一階張量,并且要求strides[0]=strides[3]=1,strides[1],strides[2]決定卷積核在輸入圖像in_hight,in_width方向的滑動步長,而通過圖像卷積的過程可以知道,卷積核的大小和圖像的大小有時候比不是完全匹配,比如圖像大小為5x5,卷積核大小為3x3,滑動步長為3時,會涉及到圖像卷積過程中邊界如何填充的問題,padding參數的兩個值SAME,VALID決定了其填充方式,通過代碼驗證其不同的工作方式:

padding = VALID:

可以看到當用5x5 的卷積核對28x28的圖像進行卷積,采用padding=VALID模式,步長為5,那么最后每個方向會余下3個像素,而VALID模式中會直接舍棄,這樣每個方向上的5個元素會變成一個元素,所以最終卷積后的圖像大小變成了5x5,結果如下:

padding = SAME:

這種模式下,對于原始圖像與卷積核不匹配的情況,就要對圖像的邊界做一些填充,具體的填充方式和所差的元素個數有關,一種一種試一試:

同樣是產生28x28的全1圖像,然后用全1的5x5卷積核做卷積,那每個方向差兩個元素,通過計算結果可以看到是在每個方向的兩端各補了一個0,形成30x30,四周都是0的圖像。那如果差1個元素呢?

比較上述結果第一行,第一列不同,其余相同,那么就是在每行每列的最后補了一個0。繼續差三個元素呢?

同樣是比較結果,通過元素的值可以推測出其是在每個方向的開頭補了一個0,最后補了兩個0,那么差4個元素呢?

結果顯示了什么?首尾各補兩個0。那么通過上述驗證是不是得到了些規律呢?可見當差偶數個元素是首尾各補一半,差奇數個時前邊補奇數個,后邊補偶數個。當然具體差多少元素和選定的卷積核大小以及滑動步長密切相關。那么滑動步長又有哪些影響呢?如果改成滑動步長為1,看看驗證的結果:

再把padding改為 VALID瞧瞧:

總結一下看到了什么,卷積核大小,滑動步長直接影響最后的卷積結果的大小,且padding為SAME模式時,先對原圖像進行填充,再做卷積,填充值須根據卷積核大小及滑動步長決定,當滑動步長大于1時:填充數=K-I%S(K:卷積核邊長,I:輸入圖像邊長,S:滑動步長),滑動步長為1時,直接卷積核邊長減1,而padding為VALID模式時,很簡單粗暴直接從原始圖像的首段開始卷積,到最后不能匹配卷積核的部分直接舍去,至于兩種模式會有怎樣的差別,后續可進行進一步的驗證。
---------------------?
原文:https://blog.csdn.net/qq_17272679/article/details/79591540?

總結

以上是生活随笔為你收集整理的TensorFlow之conv2d函数解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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