CNN示例讲解



输入图像32*32*3
第一个卷积层,f = 5,卷积核为 5*5*3,s = 1,步长为1,一共6个filter,filter决定了通道数,所以生成28*28*6的结构,每一个filter有一个偏置项,一个filter的参数是5*5*3+1,和原始输入对应位置相乘后累加再加上偏置项,这个线性结果最后做一个非线性变换(通常relu)得到最终的结构
第二层最大池化层,f = 2,也就是2*2,步长为2,池化分别对每一个通道进行运算,没有参数
第三层卷积层,卷积核5*5*6,16个filter
第四层最大池化层
第五层全连接层,是把上层结构flatten
第六层全连接层
第七层全连接层
第八层,10个神经元的softmax,model.add(Dense(10, activation='softmax'))

卷积核通常来说都rows = cols,所以只需要写f = 5,但是keras需要显式指出,比如filter size也可以是(1,5),filter的通道数必定等于上一层的通道数,filter个数决定了下一层的通道数,
例如
model.add(Conv2D(64, (3, 3), activation='relu'))
64表示的是filter个数,(3,3)是filter的尺寸,不用写出filter通道数,因为必然等于上一层通道数,上一层是32个通道,所以filter尺寸是3*3*32


留言

熱門文章