以自带models中mnist的convolutional.py为例: 1.filter要与输入数据类型相同(float32或float64),四个参数为`[filter_height, filter_width, in_channels, out_channels]`,即卷积核的高/宽/输入通道数/输出通道数(feature map),如:[5, 5, NUM_CHANNELS, 32],  # 5x5 filter, depth 32. 2.strides为长度为4的一维int型矩阵,四个参…
官方教程中没有解释pooling层各参数的意义,找了很久终于找到,在tensorflow/python/ops/gen_nn_ops.py中有写: def _max_pool(input, ksize, strides, padding, name=None): r"""Performs max pooling on the input. Args: input: A `Tensor` of type `float32`. 4-D input to pool over. ks…
声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN的存在是为了解决两个主要问题: 1. 权值太多.这个随便一篇博文都能解释 2. 语义理解.全连接网络结构处理每一个像素时,其相邻像素与距离很远的像素无差别对待,并没有考虑图像内容的空间结构.换句话说,打乱图像像素的输入顺序,结果不变. 然后,CNN中的卷积核的一个重要特点是它是需要网络自己来学习的.这一点很简…
关于TensorFlow Object Detection API配置,可以参考之前的文章https://becominghuman.ai/tensorflow-object-detection-api-tutorial-training-and-evaluating-custom-object-detector-ed2594afcf73 在本文中,我将讨论如何更改预训练模型的配置.本文的目的是您可以根据您的应用程序配置TensorFlow/models,而API将不再是一个黑盒! 本文的概述:…
反卷积是指,通过测量输出和已知输入重构未知输入的过程.在神经网络中,反卷积过程并不具备学习的能力,仅仅是用于可视化一个已经训练好的卷积神经网络,没有学习训练的过程.反卷积有着许多特别的应用,一般可以用于信道均衡.图像恢复.语音识别.地震学.无损探伤等未知输入估计和过程辨识方面的问题. 在神经网络的研究中,反卷积更多的是充当可视化的作用,对于一个复杂的深度卷积网络,通过每层若干个卷积核的变换,我们无法知道每个卷积核关注的是什么,变换后的特征是什么样子.通过反卷积的还原,可以对这些问题有个清晰的可视…
前言 最近尝试看TensorFlow中Slim模块的代码,看的比较郁闷,所以试着写点小的代码,动手验证相关的操作,以增加直观性. 卷积函数 slim模块的conv2d函数,是二维卷积接口,顺着源代码可以看到最终调的TensorFlow接口是convolution,这个地方就进入C++层面了,暂时不涉及.先来看看这个convolution函数,官方定义是这样的: tf.nn.convolution( input, filter, padding, strides=None, dilation_ra…
在官方tutorial的帮助下,我们已经使用了最简单的CNN用于Mnist的问题,而其实在这个过程中,主要的问题在于如何设置CNN网络,这和Caffe等框架的原理是一样的,但是tf的设置似乎更加简洁.方便,这其实完全类似于Caffe的python接口,但是由于框架底层的实现不一样,tf无论是在单机还是分布式设备上的实现效率都受到一致认可. CNN网络中的卷积和池化层应该怎么设置呢?tf相应的函数是什么?具体的tutorial地址参见Tensorflow中文社区. 卷积(Convolution)…
本文参考Yann LeCun的LeNet5经典架构,稍加ps得到下面适用于本手写识别的cnn结构,构造一个两层卷积神经网络,神经网络的结构如下图所示: 输入-卷积-pooling-卷积-pooling-全连接层-Dropout-Softmax输出 第一层卷积利用5*5的patch,32个卷积核,可以计算出32个特征.然后进行maxpooling.第二层卷积利用5*5的patch,64个卷积核,可以计算出64个特征.然后进行max pooling.卷积核的个数是我们自己设定,可以增加卷积核数目提高…
CNN中的卷积核及TensorFlow中卷积的各种实现 声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了“应该”二字 首先,通俗说一下,CNN的存在是为了解决两个主要问题: 1. 权值太多.这个随便一篇博文都能解释 2. 语义理解.全连接网络结构处理每一个像素时,其相邻像素与距离很远的像素无差别对待,并没有考虑图像内容的空间结构.换句话说,打乱图像像素的输入顺序,结果不变. 然后,CNN中的卷积核的一个…
转载请注明出处:http://www.cnblogs.com/willnote/p/6746668.html 图示说明 用一个3x3的网格在一个28x28的图像上做切片并移动 移动到边缘上的时候,如果不超出边缘,3x3的中心就到不了边界 因此得到的内容就会缺乏边界的一圈像素点,只能得到26x26的结果 而可以越过边界的情况下,就可以让3x3的中心到达边界的像素点 超出部分的矩阵补零 代码说明 根据tensorflow中的conv2d函数,我们先定义几个基本符号 输入矩阵 W×W,这里只考虑输入宽…