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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

cnn stride and padding_Tensorflow学习笔记- 模型建立与训练篇(CNN)

發布時間:2024/10/12 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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;
如果某些層的訓練時和測試時層的行為不同,需要手動設置訓練狀態:tf.keras.backend.set_learning_phase(True)

例子:使用 MobileNetV2 網絡在 tf_flowers 五分類數據集上進行訓練:

import

參考

  • ^卷積神經網絡?https://zh.d2l.ai/chapter_convolutional-neural-networks/index.html
  • ^TensorFlow 模型建立與訓練 ?https://tf.wiki/zh_hans/basic/models.html#cnn
  • ^深度學習中Dropout原理解析?https://blog.csdn.net/program_developer/article/details/80737724
  • 總結

    以上是生活随笔為你收集整理的cnn stride and padding_Tensorflow学习笔记- 模型建立与训练篇(CNN)的全部內容,希望文章能夠幫你解決所遇到的問題。

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