<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 理解卷積 **卷積**是 CNN 架構背后的核心概念。簡單來說,卷積是一種數學運算,它結合了兩個來源的信息來產生一組新的信息。具體來說,它將一個稱為內核的特殊矩陣應用于輸入張量,以產生一組稱為特征圖的矩陣。可以使用任何流行的算法將內核應用于輸入張量。 生成卷積矩陣的最常用算法如下: ```py N_STRIDES = [1,1] 1\. Overlap the kernel with the top-left cells of the image matrix. 2\. Repeat while the kernel overlaps the image matrix: 2.1 c_col = 0 2.2 Repeat while the kernel overlaps the image matrix: 2.1.1 set c_row = 0 2.1.2 convolved_scalar = scalar_prod(kernel, overlapped cells) 2.1.3 convolved_matrix(c_row,c_col) = convolved_scalar 2.1.4 Slide the kernel down by N_STRIDES[0] rows. 2.1.5 c_row = c_row + 1 2.3 Slide the kernel to (topmost row, N_STRIDES[1] columns right) 2.4 c_col = c_col + 1 ``` 例如,我們假設核矩陣是 2 x 2 矩陣,輸入圖像是 3 x 3 矩陣。下圖逐步顯示了上述算法: | | | | --- | --- | | ![](https://img.kancloud.cn/b7/ed/b7edcd8ff0bb7251088ef3b92912871d_451x307.png) | ![](https://img.kancloud.cn/14/84/1484038324125da812707c4b1eb27887_455x306.png) | | ![](https://img.kancloud.cn/37/0d/370d38e1b3838e854e8fa246ad1057b0_457x308.png) | ![](https://img.kancloud.cn/bd/3e/bd3ed663ab19e4ee9005b629bb6b63cd_460x304.png) | 在 con 卷積操作結束時,我們得到以下特征圖: | | | | --- | --- | | -6 | -8 | | -12 | -14 | 在上面的示例中,與卷積的原始輸入相比,生成的特征映射的大小更小。通常,特征圖的大小減小(內核大小-1)。因此,特征圖的大小為: ![](https://img.kancloud.cn/dd/54/dd5467f78fcf39459abdb89bf73774d9_3470x210.png) **三維張量** 對于具有額外深度尺寸的三維張量,您可以將前面的算法視為應用于深度維度中的每個層。將卷積應用于 3D 張量的輸出也是 2D 張量,因為卷積運算添加了三個通道。 **大步** 數組 N_STRIDES 中的 **步長** 是您想要將內核滑過的行或列的數字。在我們的例子中,我們使用了 1 的步幅。如果我們使用更多的步幅,那么特征圖的大小將根據以下等式進一步減小: ![](https://img.kancloud.cn/ab/bc/abbc98f8992ff4b55a98e50d42be1d9e_3530x460.png) **填充** 如果我們不希望減小特征映射的大小,那么我們可以在輸入的所有邊上使用填充,使得特征的大小增加填充大小的兩倍。使用填充,可以按如下方式計算特征圖的大小: ![](https://img.kancloud.cn/17/35/173503cd02d0fbcdcee571e17feb0a27_4830x460.png) TensorFlow 允許兩種填充:SAME 或 VALID。 SAME 填充意味著添加填充,使輸出特征圖與輸入特征具有相同的大小。 VALID 填充意味著沒有填充。 應用前面提到的卷積算法的結果是特征圖,是原始張量的濾波版本。例如,特征圖可能只有從原始圖像中過濾出的輪廓。因此,內核也稱為過濾器。對于每個內核,您將獲得單獨的 2D 特征圖。 根據您希望網絡學習的特征,您必須應用適當的過濾器來強調所需的特征。 但是,使用 CNN,模型可以自動了解哪些內核在卷積層中最有效。 **TensorFlow** 中的卷積運算 TensorFlow 提供實現卷積算法的卷積層。例如,具有以下簽名的`tf.nn.conv2d()`操作: ```py tf.nn.conv2d( input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None ) ``` `input`和`filter`表示形狀`[batch_size, input_height, input_width, input_depth]`的數據張量和形狀`[filter_height, filter_width, input_depth, output_depth]`的核張量。內核張量中的 `output_depth`表示應該應用于輸入的內核數量。 `strides`張量表示每個維度中要滑動的單元數。如上所述,`padding`是有效的或相同的。 您可以在以下鏈接中找到有關TensorFlow中可用卷積操作的更多信息:[https://www.tensorflow.org/api_guides/python/nn#Convolution](https://www.tensorflow.org/api_guides/python/nn#Convolution) 您可以在以下鏈接中找到有關 Keras 中可用卷積層的更多信息:[https://keras.io/layers/convolutional/](https://keras.io/layers/convolutional/) 以下鏈接提供了卷積的詳細數學解釋:[http://colah.github.io/posts/2014-07-Understanding-Convolutions/](http://colah.github.io/posts/2014-07-Understanding-Convolutions/) [http://ufldl.stanford.edu/tutorial/supervised/FeatureExtractionUsingConvolution/](http://ufldl.stanford.edu/tutorial/supervised/FeatureExtractionUsingConvolution/) [http://colah.github.io/posts/2014-07-Understanding-Convolutions/](http://colah.github.io/posts/2014-07-Understanding-Convolutions/) 卷積層或操作將輸入值或神經元連接到下一個隱藏層神經元。每個隱藏層神經元連接到與內核中元素數量相同數量的輸入神經元。所以在前面的例子中,內核有 4 個元素,因此隱藏層神經元連接到輸入層的 4 個神經元(3×3 個神經元中)。在我們的例子中,輸入層的 4 個神經元的這個區域被稱為 CNN 理論中的**感受域**。 卷積層具有每個內核的單獨權重和偏差參數。權重參數的數量等于內核中元素的數量,并且只有一個偏差參數。內核的所有連接共享相同的權重和偏差參數。因此在我們的例子中,將有 4 個權重參數和 1 個偏差參數,但如果我們在卷積層中使用 5 個內核,則總共將有 5 x 4 個權重參數和 5 個 1 個偏差參數,一組(4)每個特征圖的權重,1 個偏差)參數。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看