Tensorflow筆記——卷積神經網絡

實踐副作用於理論網絡

1、概論。函數

  全鏈接NN:每一個神經元與先後相鄰層的每個神經元都有鏈接關係,輸入是特徵,輸出爲預測的結果,參數的個數:∑( 前層 X 後層 + 後層 )圖片

  爲防止過擬合,實際應用中會先對原始圖像進行特徵提取,在把提取到的特徵餵給全鏈接網絡,io

  卷積(Convolutional):可認爲是一種有效提取圖像特徵的方法。通常會用一個正方形卷積核,遍歷圖片上的每一個點。圖片區域內,相對應的每個像素值,乘以卷積核內相對應點的權重,求和,再加上偏置。tensorflow

  池化(pooling):用於減小特徵數量。最大值池化能夠提取圖片紋理,均值池化能夠保留背景特徵神經網絡

## 輸出圖片邊長=( 輸入圖片邊長 - 卷積核長+1 ) / 步長   遍歷

 

2、CNN模型的主要模塊方法

一、高層次抽象特徵 精減特徵點:卷積 激活 池化di

二、全鏈接co

 

3、tensorflow相關函數

  一、計算卷積:

  tf.nn.conv2d (輸入描述,eg.[ batch , 5,5( 注:5,5分辨率 ),3( 注:通道數,此處爲rgb三通道 )  ]   

        卷積核描述,eg.[ 3,3(  注:行列分辨率:3*3 ), 1( 注:通道數) ,16(注:核個數)  ] ( 注:說明輸出深度是16,輸出通道爲16,有16個輸出 )

        核滑動步長,eg.[ 1(注:固定是1) , 1( 注:行步長), 1( 注:列步長) ,1(注:固定是1,偏置???) ]

        padding='VALID' ( 注:valid表示不用全零填充,不然爲same )  

        )

  二、計算池化:

  最大池化爲tf.nn.max_pool,平均池化: tf.nn.avg_pool

  pool=tf.nn.max_pool(  輸入描述,eg.[ batch , 28,28 (注:行列分辨率 28*28 ) ,6(通道數)  ] 

            池化描述(僅大小),eg.[ 1(注:固定是1) ,  2,2(注:行列分辨率 2*2),  1(注:固定是1) ]

            池化核滑動步長,eg.[1(注:固定是1) , 2( 注:行步長), 2( 注:列步長) ,1(注:固定是1)  ] 

            padding = ' SAME '

          )

  三、捨棄(Dropout):

  在神經網絡的訓練過程當中,將一部分神經元按照必定機率從神經網絡中暫時捨棄。使用時被捨棄的神經元恢復鏈接。用於防止過擬合。

  tf.nn.dropout( 上層輸出,暫時捨棄的機率 ) 

相關文章
相關標籤/搜索