博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【深度学习篇】--神经网络中的池化层和CNN架构模型
阅读量:5370 次
发布时间:2019-06-15

本文共 1663 字,大约阅读时间需要 5 分钟。

一、前述

本文讲述池化层和经典神经网络中的架构模型。

二、池化Pooling

1、目标

降采样subsample,shrink(浓缩),减少计算负荷,减少内存使用,参数数量减少(也可防止过拟合)

减少输入图片大小(降低了图片的质量)也使得神经网络可以经受一点图片平移,不受位置的影响(池化后相当于把图片上的点平移了)
正如卷积神经网络一样,在池化层中的每个神经元被连接到上面一层输出的神经元,只对应一小块感受野的区域。我们必须定义大小,步长,padding类型
池化神经元没有权重值它只是聚合输入根据取最大或者是求均值

2*2的池化核,步长为2,没有填充,只有最大值往下传递,其他输入被丢弃掉了

2、举例

 3、结论

长和宽两倍小,面积4倍小,丢掉75%的输入值

一般情况下,池化层工作于每一个独立的输入通道,所以输出的深度和输入的深度相同

4、代码

 

import numpy as npfrom sklearn.datasets import load_sample_imagesimport tensorflow as tfimport matplotlib.pyplot as plt# 加载数据集# 输入图片通常是3D,[height, width, channels]# mini-batch通常是4D,[mini-batch size, height, width, channels]dataset = np.array(load_sample_images().images, dtype=np.float32)# 数据集里面两张图片,一个中国庙宇,一个花batch_size, height, width, channels = dataset.shapeprint(batch_size, height, width, channels)# channels是3个# 创建输入和一个池化层X = tf.placeholder(tf.float32, shape=(None, height, width, channels))# TensorFlow不支持池化多个实例,所以ksize的第一个batch size是1# TensorFlow不支持池化同时发生的长宽高,所以必须有一个是1,这里channels就是depth维度为1max_pool = tf.nn.max_pool(X, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='VALID')#没有卷积直接做池化# avg_pool()with tf.Session() as sess:    output = sess.run(max_pool, feed_dict={X: dataset})plt.imshow(output[0].astype(np.uint8))  # 画输入的第一个图像plt.show()

 

 

总结:在一个卷积层里面,不同的卷积核步长和维度都一样的,每个卷积核的channel是基于上一层的channel来的

 

三、CNN架构

原理:

典型的CNN架构堆列一些卷积层

1、一般一个卷积层后跟ReLU层,然后是一个池化层,然后另一些个卷积层+ReLU层,然后另一个池化层,通过网络传递的图片越来越小,但是也越来越深,例如更多的特征图!(随着深度越深,宽度越宽,卷积核越多),这些层都是在提取特征。
2、最后常规的前向反馈神经网络被添加,由一些全连接的层+ReLU层组成,最后是输出层预测,例如一个softmax层输出预测的类概率(真正分类是最后全连接层)。
3、一个常见的误区是使用卷积核过大,你可以使用和9*9的核同样效果的两个3*3的核,好处是会有更少的参数需要被计算,还可以在中间多加一个非线性激活函数ReLU,来提供复杂程度(层次越多不是坏事

图示:

 

转载于:https://www.cnblogs.com/LHWorldBlog/p/8666026.html

你可能感兴趣的文章
第二轮冲刺第五天
查看>>
图片压缩
查看>>
Hadoop-2.6.5安装
查看>>
ES6思维导图
查看>>
第四周作业
查看>>
20151121
查看>>
线段重叠 (思维好题)
查看>>
Codeforces Round #413 C. Fountains (线段树的创建、查询、更新)
查看>>
SBuild 0.1.5 发布,基于 Scala 的构建系统
查看>>
WordPress 3.5 RC3 发布
查看>>
DOM扩展札记
查看>>
primitive assembly
查看>>
浅谈localStorage的用法
查看>>
Ad Exchange基本接口和功能
查看>>
Angular ui-router的常用配置参数详解
查看>>
软考知识点梳理--项目评估
查看>>
把特斯拉送上火星的程序员,马斯克!
查看>>
三测单
查看>>
MyBatis 缓存
查看>>
SQL中left outer join与inner join 混用时,SQL Server自动优化执行计划
查看>>