用tensorflow搭cnn - notes
Posted 烧鸭饭真好吃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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
以上是关于用tensorflow搭cnn - notes的主要内容,如果未能解决你的问题,请参考以下文章
深度学习系列用PaddlePaddle和Tensorflow实现经典CNN网络Vgg