用tensorflow搭cnn - notes

一次进步一点点,滴水穿石头...估计我也老了

密集连接层

就是摊平,reshape

然后加上一层w, b , so easy

卷积操作

先写个定义w和b的函数

卷积是已经包装好的函数,只需要传入x和w就可以自动卷了

 

第二层卷积层承接的是第一层的数量

如果第一层的shape是[5,5,1,32] , 第三个数是原始图片的通道

第二层就该是[5,5,32,64] , 第三个数是第一层的卷积核数量

卷积和pool层的参数数量变化

tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
把 x按照W的尺寸来卷积,
strides等于1,意味着图片的size都没变

pool也是,如果是2x2的pool,相当于把图片size长宽都除以2,
两次pool之后28x28变成7x7

上一层的feature maps被一个可学习的卷积核进行卷积

mj是输入的点,

对于每一个输出对点,都有一个完全不同对卷积核

所以我猜,

  W就是这里的k, 是要学习和更新的权重,一个卷积核就是一块区域(4x4=16)对应一个核(16个参数),再加上一个b

  两个核就是会生成两个不同的output点,两个不同的核,参数又翻倍

  如果stride=1,那么一个32x32的图片就有,28x28个小区域,每个区域3个卷积核的话,就有28x28x3x16个参数,爆炸...

不对,更新认知

  一个卷积核,应该说,同一个卷积核就卷积了 这所有的28x28个小区域,而不是每个点换一个卷积核,所以现在只有3x16个参数了,nice

posted @ 2017-07-30 10:31  烧鸭饭真好吃  阅读(126)  评论(0编辑  收藏  举报