CNN

概念
1)卷积核=过滤器filter:
每个卷积核有长宽深3个维度

2)feature map:
在cnn的每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起(像豆腐皮一样),其中每一个称为一个feature map。

3)feature map怎么生成
在输入层,如果是灰度图片,就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。

tf.layers.conv2d
def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC", dilations=[1, 1, 1, 1], name=None):
r"""Computes a 2-D convolution given 4-D input and filter tensors.

feature map的一些理解:
1)特征映射,是输入图像和卷积核卷积后生成的feature map,图像的特征;
2)feature map的意思在计算机视觉领域基本一致,可以草率的翻译成特征图,例如rgb,所有点的r组成一个feature map;
3)在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝);

卷积核的一些理解:
1)层与层之间会有若干个卷积核(kernel),上一层和每个feature map跟每个卷积核做卷积,都会产生下一层的一个feature map;
2)卷积核在有的文档里也称为过滤器(filter):
每个卷积核具有长宽深三个维度;
在某个卷积层中,可以有多个卷积核:下一层需要多少个feather map,本层就需要多少个卷积核。

卷积核的形状
每个卷积核具有长、宽、深三个维度。在CNN的一个卷积层中:

卷积核的长、宽都是人为指定的,长X宽也被称为卷积核的尺寸,常用的尺寸为3X3,5X5等;
卷积核的深度与当前图像的深度(feather map的张数)相同,所以指定卷积核时,只需指定其长和宽 两个参数。例如,在原始图像层 (输入层),如果图像是灰度图像,其feather map数量为1,则卷积核的深度也就是1;如果图像是grb图像,其feather map数量为3,则卷积核的深度也就是3.
因为随着网络的加深,feature map的长宽尺寸缩小,本卷积层的每个map提取的特征越具有代表性(精华部分),所以后一层卷积层需要增加feature map的数量,才能更充分的提取出前一层的特征,一般是成倍增加
https://blog.csdn.net/xys430381_1/article/details/82529397

filter的理解
filter有两种理解:

在有的文档中,一个filter等同于一个卷积核:只是指定了卷积核的长宽深;

而有的情况(例如tensorflow等框架中,filter参数通常指定了卷积核的长、宽、深、个数四个参数),filter包含了卷积核形状和卷积核数量的概念:即filter既指定了卷积核的长宽深,也指定了卷积核的数量。
一般 channels 的含义是,每个卷积层中卷积核的数量

https://blog.csdn.net/xiaocong1990/article/details/82532814

TextCNN对文本浅层特征的抽取能力很强,在短文本领域如搜索、对话领域专注于意图分类时效果很好,应用广泛,且速度快,一般是首选;对长文本领域,TextCNN主要靠filter窗口抽取特征,在长距离建模方面能力受限,且对语序不敏感。

http://www.cnblogs.com/qggg/p/6832342.html

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)
除去name参数用以指定该操作的name,与方法有关的一共五个参数:

第一个参数input:指需要做卷积的输入图像,它要求是一个Tensor,
具有[batch, in_height, in_width, in_channels]这样的shape,
具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数]

第二个参数filter:相当于CNN中的卷积核,它要求是一个Tensor,
具有[filter_height, filter_width, in_channels, out_channels]这样的shape,
具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数]

第三个参数strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4

第四个参数padding:只能是"SAME","VALID"其中之一,这个值决定了不同的卷积方式

第五个参数:use_cudnn_on_gpu:bool类型,是否使用cudnn加速,默认为true

结果返回一个Tensor,这个输出,就是我们常说的feature map,
shape仍然是[batch, height, width, channels]这种形式。

完毕。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。