TensorFlow的中文文檔的深入MNIST中的【構建一個多層卷積網絡】開始
個人理解:
1. 卷積
卷積層的四個參數:
F:濾波器尺寸
S:步長
K:濾波器個數(一般選擇2的冪指數倍)
P:填補
a) 原文:【我們的卷積使用1步長(stride size),0邊距(paddingsize)的模板,保證輸出和輸入是同一個大小。】
tensorflow中conv2d的"padding"參數可以設為兩個值SAME,VALID
SAME: edge_row = (kernel_row - 1) / 2; edge_cols = (kernel_cols - 1) / 2;
VALID:edge_row = edge_cols = 0;
edge_row就是邊的行數,kernel_row就是卷積核的行數
Padding size選擇為’SAME’就表示會用0填充。中文翻譯為0邊距,有點問題。所以當選擇SAME時P=(5-1)/2=2
b) 原文:【卷積在每個5x5的patch中算出32個特征。卷積的權重張量形狀是[5, 5, 1, 32],前兩個維度是patch的大小,接著是輸入的通道數目,最后是輸出的通道數目?!?/p>
表示卷積核大小是5x5,一共有32個這樣的濾波器。
計算公式:
Input : W1*H1*D1 28*28*1
Output :W2*H2*D2
W2=(W1-F+2P)/S+1 H2=(H1-F+2P)/S+1 D2=K
基本使用里提到Tensorflow使用tensor表示數據,Tensor是一個類型化的多維數組,相當于常規的程序數據??梢詫⒁恍〗M圖像集表示為一個四維浮點數數組。這四個維度分別是[batch, height, width, channels]
所以這句
原文:【為了用這一層,我們把x變成一個4d向量,其第2、第3維對應圖片的寬、高,最后一維代表圖片的顏色通道數(因為是灰度圖所以這里的通道數為1,如果是rgb彩色圖,則為3)】
x_image =tf.reshape(x, [-1,28,28,1])
中的-1會不會就對應batch,batch=-1又是什么意思暫時沒搞明白【有網友回復說-1表示這個維度的值是根據其他幾個維度值計算出來的】
2.池化
大小2x2,步長2所以空間尺寸會在池化層減小一半
Max pooling后output大小為14*14*32
輸出圖像的參數D只與濾波器個數K有關系,所以第二層卷積應該是采用了64個5*5大小的卷積核。
第二次池化后輸出圖像的大小為7*7*64
新聞熱點
疑難解答