一耸三、CNN中重要概念
- stride:就是每跨多少步抽取一部分信息
加入stride后卷積圖像大小的通用計(jì)算公式為:
輸入圖像:n*n,過濾器:f*f步長:s轩娶,padding:p
輸出圖像大小為:?(n+2p?fs+1))???(n+2p?fs+1)??(n+2p?fs+1))???(n+2p?fs+1)?缴守,????表示向下取整
以輸入圖像7*7,過濾器3*3挖腰,步長為2,padding模式為valid為例輸出圖像大小為:?(7+2?0?32+1)???7+2?0?32+1)?=3?3
tensorflow中自帶的卷積操作代碼定義:
https://tensorflow.google.cn/api_docs/python/tf/nn/conv2d
tf.nn.conv2d(
input,
filter,
strides,
padding,
use_cudnn_on_gpu=True,
data_format='NHWC',
dilations=[1, 1, 1, 1],
name=None
)
- NCHW對應(yīng)[batch_size,Channel,Heigth,Width]练湿。
- 假設(shè)輸出圖像大小為n*n與過濾器大小為 f*f猴仑,輸出圖像大小則為(n?f+1)?(n?f+1)。
- stride:對原有輸入矩陣進(jìn)行填充肥哎。原有卷積運(yùn)算的缺點(diǎn)是宁脊,卷積圖像的大小會不斷縮小,另外圖像的左上角的元素只被一個(gè)輸出所使用贤姆,所以在圖像邊緣的像素在輸出中采用較少,也就意味著你丟掉了很多圖像邊緣的信息稳衬,為了解決這兩個(gè)問題霞捡,就引入了padding操作,也就是在圖像卷積操作之前薄疚,沿著圖像邊緣用0進(jìn)行圖像填充碧信。對于3*3的過濾器,我們填充寬度為1時(shí)街夭,就可以保證輸出圖像和輸入圖像一樣大砰碴。
padding的兩種模式:
Valid:no padding
輸入圖像nn,過濾器ff,輸出圖像大小為:(n?f+1)?(n?f+1)
Same:輸出圖像和輸入圖像一樣大
參考:
1、CSDN:https://blog.csdn.net/ice_actor/article/details/78648780
2板丽、簡書:http://www.reibang.com/p/5c1f9b28b01e
- 卷積層的作用:提取特征呈枉。輸入圖像的通道數(shù)必須與卷積核的通道數(shù)相同(每個(gè)點(diǎn)做乘加)*
- 激活函數(shù):給線性方程增加非線性效果
欠擬合和過擬合應(yīng)該怎么辦?
過擬合:L2正則化埃碱,加入正則化 λ 來完善成本函數(shù)猖辫, λ 越大,w就被壓縮的越小砚殿。