神经网络 CNN 名词解释
隐藏层
不是输入或输出层的所有层都称为隐藏层.
激活和池化都没有权重
使层与操作区分开的原因在于层具有权重。由于池操作和激活功能没有权重,因此我们将它们称为操作,并将其视为已添加到层操作集合中。
例如,我们说网络中的第二层是一个卷积层,其中包含权重的集合,并执行三个操作,即卷积操作,relu激活操作和最大池化操作。
传入Linear层之前展平张量
在将输入传递到第一个隐藏的Linear层之前,我们必须reshape()或展平我们的张量。每当我们将卷积层的输出作为Linear层的输入传递时,都是这种情况。
正向传播
正向传播是将输入张量转换为输出张量的过程。神经网络的核心是将输入张量映射到输出张量的功能,而正向传播只是将传递输入到网络并从网络接收输出的过程的特殊名称。
in_channels
对于最初输入图片样本的通道数in_channels取决于图片的类型,如果是彩色的,即RGB类型,这时候通道数固定为3,如果是灰色的,通道数为1。
out_channels
卷积完成之后,输出的通道数out_channels取决于过滤器的数量。从这个方向理解,这里的out_channels设置的就是过滤器的数目。
对于第二层或者更多层的卷积,此时的 in_channels 就是上一层的 out_channels , out_channels 还是取决于过滤器数目。
为什么GPU在深度学习中能够如此广泛的使用?
因为神经网络是易并行的(embarrassing parallel),即:很容易就能够将任务分解成一组独立的小任务;神经网络的很多计算都可以很容易地分解成更小的相互独立的计算,这使得GPU在深度学习任务中非常有用。
一个卷积核对一张图像进行卷积的每个运算是独立且相继发生的,故可将其分成一个个小任务,使用GPU加速运算; (图像分块后送入神经网络是否同理?)
张量
- 张量是神经网络中使用的主要数据结构,网络中的输入、输出和转换均使用张量表示.
- 张量与张量之间的运算必须是相同数据类型在相同的设备上发生的.
- 张量是包含一个同一类型的数据.
| 索引数量 | 计算机科学中的名称 | 数学中的名称 | Tensor表示 |
|---|---|---|---|
| 0 | 数字 | 标量 | 0维张量 |
| 1 | 数组 | 矢量 | 1维张量 |
| 2 | 二维数组 | 矩阵 | 2维张量 |
| n | N维数组 | N维张量 | n维张量 |
张量的属性(阶,轴,形状)
阶
- 张量的阶是指张量中的维数。假设我们有一个二阶张量。这意味着以下所有内容:
- 一个张量的秩告诉我们需要多少个索引来访问或引用张量结构中包含的特定数据元素
轴
- 一个张量的轴是一个张量的一个特定维度。
- 对于张量,其最后一个轴的元素均为数字。
- 假设有个张量是一个2阶的张量,这意味着这个张量有2个维度,或者等价于,张量有 2 个轴。
形状
- 张量的形状由每个轴的长度决定(知道了张量的形状就可知道每个轴的索引)。
- 3 x 3的形状告诉我们,这个2阶张量的每个轴的长度都是3,这意味着我们有三个沿着每个轴可用的索引。
张量输入到神经网络
- CNN输入张量的长度通常为4:[batchsize,color_channel,height,width];通过这4个索引,可以在特定图像的特定颜色通道中导航到特定的像素;
- 卷积神经网络的样本输入通常是批量的而不是单个的;
- 张量经过卷积层后的变化:卷积会改变高度、宽度以及颜色通道的数量;通道数与滤波器的数量有关;滤波器的大小会影响到高度和宽度;
- 经过卷积的通道不再叫彩色通道(已被改变),而叫做特征通道(特征图:输入颜色通道和卷积滤波器所产生的卷积结果)
- 输出通道 = 特征通道 = 特征映射
CNN构建及网络参数的使用
Parameter和Argument的区别
- Parameter在函数定义中使用,可将其看作是占位符;(形参)
- Argument是当函数被调用时传递给函数的实际值;(实参)
Parameter的两种类型
Hyperparameters
其值是手动和任意确定的;要构建神经网络:kernel_size,out_channels,out_features都需要手动选择.
Data dependent Hyperparameters
其值是依赖于数据的参数
- 该参数位于网络的开始或末端,即第一个卷积层的输入通道和最后一个卷积层的输出特征图
- 第一个卷积层的输入通道依赖于构成训练集的图像内部的彩色通道的数量(灰度图像是1,彩色图像是3)
- 输出层的输出特征依赖于训练集中类的数量(fashion-MNIST数据集中的类型为10,则输出层的out_features=10)
- 通常情况下,一层的输入是上一层的输出(即:卷积层中所有输入通道和线性层中的输入特征都依赖于上一层的数据)
当张量从卷积层传入线性层时,张量必须是flatten的
| Parameter | Description |
|---|---|
| kernel_size | 设置滤波器的大小;滤波器的数量就是输出通道数 |
| out_channels | 设置滤波器的数量,即为输出通道数 |
| out_features | 设置输出张量的大小 |
训练神经网络的七个步骤
- 从训练集中获取批量数据
- 将批量数据传入网络
- 计算损失(预测值与真实值之间的差)【需要loss function实现】
- 计算损失函数的梯度 【需要back propagation实现】
- 通过上一步计算的梯度来更新权重,进而减少损失【需要optimization algorithm实现】
- 重复1-5步直到一个epoch执行完成
- 重复1-6步直到所设定的epochs执行完成并得到满意的accuracy #### 3.12.2 单批次图像训练
每个周期的迭代数
数据总数/batchsize(当改变batchsize时,也就是改变了更新权重的次数,也就是朝损失函数最小的防线前进的步数)
梯度
告诉我们应该走哪条路能更快的到达loss最小
多数名词解释都是从下面的链接复制:
https://blog.csdn.net/flyfor2013/article/details/106394341
https://github.com/wanyueli/DeepLizard-pytorch-/blob/master/Pytorch构建神经网络(一).ipynb
神经网络 CNN 名词解释的更多相关文章
- 卷积神经网络CNN总结
从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图 ...
- 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
- 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
- 卷积神经网络(CNN)学习笔记1:基础入门
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Vie ...
- 积神经网络(CNN)的参数优化方法
http://www.cnblogs.com/bonelee/p/8528863.html 积神经网络的参数优化方法——调整网络结构是关键!!!你只需不停增加层,直到测试误差不再减少. 积神经网络(C ...
- 深度学习之卷积神经网络CNN及tensorflow代码实例
深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...
- python机器学习卷积神经网络(CNN)
卷积神经网络(CNN) 关注公众号"轻松学编程"了解更多. 一.简介 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人 ...
- nodejs、npm、grunt——名词解释
最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
随机推荐
- 什么是Spring的内部bean?
当一个bean仅被用作另一个bean的属性时,它能被声明为一个内部bean,为了定义inner bean,在Spring 的 基于XML的 配置元数据中,可以在 <property/>或 ...
- Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
可以继承其他类或实现其他接口,在 Swing 编程和 Android 开发中常用此方式来 实现事件监听和回调.
- Springmvc入门基础(二) ---架构详解
1.框架结构图 架构流程文字说明 用户发送请求至前端控制器DispatcherServlet DispatcherServlet收到请求调用HandlerMapping处理器映射器. 处理器映射器根据 ...
- Linux 网卡配置参数
网卡配置文件位于 /etc/sysconfig/network-scripts/ 目录下 网卡配置文件在RHEL5/6以eth为网卡文件的前缀,在RHEL7中以ifcfg为网卡文件的前缀 配置 解释 ...
- java-servlet-cookie&sessions
http协议是无状态协议 无状态协议的意思是服务端与客户端不会记录任何一次通信的信息 服务端"和"客户端",虽然见过很多面,但每次见面仍还是认不出对方,都是陌生人. 但 ...
- 如何理解 Spring 中的代理?
将 Advice 应用于目标对象后创建的对象称为代理.在客户端对象的情况下,目 标对象和代理对象是相同的. Advice + Target Object = Proxy
- Idea学习之"使用SVN如何查看哪一行是哪一个人写的历史日志"
点击出的方法 结果图 点击记录,显示详细
- 寄存器、特殊功能寄存器和ram之间的区别联系
存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右. 内存和寄存器就是为了解决存储器读写速度慢而产生 ...
- 18个基于 HTML5 Canvas 开发的图表库
如今,HTML5 可谓如众星捧月一般,受到许多业内巨头的青睐.很多Web开发者也尝试着用 HTML 5 来制作各种各样的富 Web 应用.HTML 5 规范引进了很多新特性,其中之一就是 Canvas ...
- 【译】客户端存储(Client-Side Storage)
本文转载自:众成翻译译者:文蔺链接:http://www.zcfy.cc/article/660原文:http://www.html5rocks.com/en/tutorials/offline/st ...