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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

神经网络- receptive field

發(fā)布時(shí)間:2023/12/6 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 神经网络- receptive field 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

記錄一下感受野的理解:

在神經(jīng)網(wǎng)絡(luò)中,感受野的定義是:?
神經(jīng)網(wǎng)絡(luò)的每一層輸出的特征圖(Feature ap)上的像素點(diǎn)在原圖像上映射的區(qū)域大小。?

1. 神經(jīng)網(wǎng)絡(luò)中,第一個(gè)卷積層的 感受野大小,就等于filter,濾波器的大小。

2.?深層卷積層的感受野大小和它之前所有層的濾波器大小和步長(zhǎng)有關(guān)系。

3.計(jì)算感受野大小時(shí),忽略了圖像邊緣的影響,即不考慮padding的大小。

?

首先說(shuō)strides = 之前的神經(jīng)網(wǎng)絡(luò)層的步長(zhǎng)乘積,也就是:strides(i) =?stride(1) *?stride(2) * ...*?stride(i-1)?

感受野的計(jì)算,是從(最深層-1)的神經(jīng)網(wǎng)絡(luò),迭代到第一層,來(lái)計(jì)算的, 公式簡(jiǎn)單表達(dá)為:

RF{i} =? (RF{i-1} - 1) * stride + ConvSize

?

RCNN論文中有一段描述,Alexnet網(wǎng)絡(luò)pool5輸出的特征圖上的像素在輸入圖像上有很大的感受野(have very large receptive fields (195 × 195 pixels))和步長(zhǎng)(strides (32×32 pixels)?), 這兩個(gè)變量的數(shù)值是如何得出的呢?

用python代碼表達(dá):

#!/usr/bin/env python net_struct = {'alexnet': {'net':[[11,4,0],[3,2,0],[5,1,2],[3,2,0],[3,1,1],[3,1,1],[3,1,1],[3,2,0]],'name':['conv1','pool1','conv2','pool2','conv3','conv4','conv5','pool5']},'vgg16': {'net':[[3,1,1],[3,1,1],[2,2,0],[3,1,1],[3,1,1],[2,2,0],[3,1,1],[3,1,1],[3,1,1],[2,2,0],[3,1,1],[3,1,1],[3,1,1],[2,2,0],[3,1,1],[3,1,1],[3,1,1],[2,2,0]],'name':['conv1_1','conv1_2','pool1','conv2_1','conv2_2','pool2','conv3_1','conv3_2','conv3_3', 'pool3','conv4_1','conv4_2','conv4_3','pool4','conv5_1','conv5_2','conv5_3','pool5']},'zf-5':{'net': [[7,2,3],[3,2,1],[5,2,2],[3,2,1],[3,1,1],[3,1,1],[3,1,1]],'name': ['conv1','pool1','conv2','pool2','conv3','conv4','conv5']}}imsize = 224def outFromIn(isz, net, layernum):totstride = 1insize = iszfor layer in range(layernum):fsize, stride, pad = net[layer]outsize = (insize - fsize + 2*pad) / stride + 1insize = outsizetotstride = totstride * stridereturn outsize, totstridedef inFromOut(net, layernum):RF = 1for layer in reversed(range(layernum)):fsize, stride, pad = net[layer]RF = ((RF -1)* stride) + fsizereturn RFif __name__ == '__main__':print "layer output sizes given image = %dx%d" % (imsize, imsize)for net in net_struct.keys():print '************net structrue name is %s**************'% netfor i in range(len(net_struct[net]['net'])):p = outFromIn(imsize,net_struct[net]['net'], i+1)rf = inFromOut(net_struct[net]['net'], i+1)print "Layer Name = %s, Output size = %3d, Stride = % 3d, RF size = %3d" % (net_struct[net]['name'][i], p[0], p[1], rf)

?

轉(zhuǎn)載于:https://www.cnblogs.com/ChrisInsistPy/p/9508689.html

總結(jié)

以上是生活随笔為你收集整理的神经网络- receptive field的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。