cnn stride and padding_Tensorflow学习笔记- 模型建立与训练篇(CNN)
生活随笔
收集整理的這篇文章主要介紹了
cnn stride and padding_Tensorflow学习笔记- 模型建立与训练篇(CNN)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這次就用Keras實現下CNN
一. 預備知識——CNN[1]
1. 二維互相關(cross-correlation)運算:計算
, 屬于輸入數組, 屬于卷積窗口,n和m取決于窗口的大小。- 核數組(卷積核或過濾器)的形狀決定卷積窗口的形狀。
在二維互相關運算中,卷積窗口從輸入數組的左上方開始,按從左往右、從上往下的順序,依次在輸入數組上滑動,每滑動到一個位置,計算出窗口對應位置的卷積,從而得到輸出數組。
2. 二維卷積層:在對輸入數組和窗口做二維互關運算后,加上一個偏移量得到
- 特征圖(feature map):卷積層輸出的數組,即輸入在空間維度上某一級的表征
- 感受野(receptive field):影響元素 的前向計算的所有可能輸入區域(可能大于輸入的實際尺寸)
- 填充(padding):在輸入高和寬的兩側填充元素,通常設置 和 來使輸入和輸出具有相同的高和寬
卷積神經網絡經常使用奇數高和寬的卷積核
- 步幅(stride):每次滑動的行數和列數
如果設置 和 ,那么輸出形狀將簡化為
更進一步,如果輸入的高和寬能分別被高和寬上的步幅整除,那么輸出形狀將是
3. 池化層(pooling):直接計算池化窗口內元素的最大值或者平均值,為了緩解卷積層對位置的過度敏感性
二. Keras實現CNN[2]
class 示例代碼中的 CNN 結構圖示 - https://tf.wiki/zh_hans/basic/models.html#cnn可以加入 Dropout 層防止過擬合
Dropout 層:在前向傳播的時候,讓某個神經元的激活值以一定的概率p停止工作[3]tf.keras.applications中有一些預定義好的經典卷積神經網絡結構:VGG16、VGG19、ResNet、MobileNet,可以直接調用(參數已經預定義好),也可以自定義初始化變量,常用參數:
- input_shape:輸入張量的形狀,默認 ,一般不低于 或 ;
- include_top:在網絡的最后是否包含全連接層,默認True;
- weights:預訓練權值,默認'imagenet'(當前模型載入在 ImageNet 數據集上預訓練的權值),可設為None;
- classes:分類數,默認1000,修改該參數需要include_top參數為True且weights參數為None;
例子:使用 MobileNetV2 網絡在 tf_flowers 五分類數據集上進行訓練:
import參考
總結
以上是生活随笔為你收集整理的cnn stride and padding_Tensorflow学习笔记- 模型建立与训练篇(CNN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果手机拍照声音怎么关了(苹果手机拍照声
- 下一篇: pwm控制的基本原理_最详细的电机控制说