隐藏层

不是输入或输出层的所有层都称为隐藏层.

激活和池化都没有权重

使层与操作区分开的原因在于层具有权重。由于池操作和激活功能没有权重,因此我们将它们称为操作,并将其视为已添加到层操作集合中。

例如,我们说网络中的第二层是一个卷积层,其中包含权重的集合,并执行三个操作,即卷积操作,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 设置输出张量的大小

训练神经网络的七个步骤

  1. 从训练集中获取批量数据
  2. 将批量数据传入网络
  3. 计算损失(预测值与真实值之间的差)【需要loss function实现】
  4. 计算损失函数的梯度 【需要back propagation实现】
  5. 通过上一步计算的梯度来更新权重,进而减少损失【需要optimization algorithm实现】
  6. 重复1-5步直到一个epoch执行完成
  7. 重复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 名词解释的更多相关文章

  1. 卷积神经网络CNN总结

    从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图 ...

  2. 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  3. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  4. 卷积神经网络(CNN)学习笔记1:基础入门

    卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Vie ...

  5. 积神经网络(CNN)的参数优化方法

    http://www.cnblogs.com/bonelee/p/8528863.html 积神经网络的参数优化方法——调整网络结构是关键!!!你只需不停增加层,直到测试误差不再减少. 积神经网络(C ...

  6. 深度学习之卷积神经网络CNN及tensorflow代码实例

    深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...

  7. python机器学习卷积神经网络(CNN)

    卷积神经网络(CNN) 关注公众号"轻松学编程"了解更多. 一.简介 ​ 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人 ...

  8. nodejs、npm、grunt——名词解释

    最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...

  9. Sql常用语法以及名词解释

    Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...

随机推荐

  1. 说说三元运算和if...else的相同之处

    三元运算符和if-else语句:不同之处. a) 三元运算符是必须要有返回值,而if-else语句并不一定有返回值,其执行结果可能是赋值语句或者打印输出语句. b) java三元表达式有字符强转(双目 ...

  2. Java 新内存(cache)模型解析

    JMM 相关文档: Java Language Specification Chapter 17 The JSR-133 Cookbook for Compiler Writers - Doug Le ...

  3. ROS环境变量的设置

    一.前言(大神可以直接跳过) 本博客主要就是为了介绍ROS中环境变量的设置过程,还不是很了解ROS的可以去看一下我的博客,ROS简介-从零开始讲解ROS(适合超零基础阅读) ROS为什么需要设置环境变 ...

  4. C++ 虚继承实现原理(虚基类表指针与虚基类表)

    虚继承和虚函数是完全无相关的两个概念. 虚继承是解决C++多重继承问题的一种手段,从不同途径继承来的同一基类,会在子类中存在多份拷贝.这将存在两个问题:其一,浪费存储空间:第二,存在二义性问题,通常可 ...

  5. Linux网络配置:Nat和桥接模式详解

    Linux网络配置:Nat和桥接模式详解 一.我们首先说一下VMware的几个虚拟设备: Centos虚拟网络编辑器中的虚拟交换机: VMnet0:用于虚拟桥接网络下的虚拟交换机: VMnet1:用于 ...

  6. 媒体查询@media的使用

    媒体查询 参考:https://developer.mozilla.org...一个媒体查询由一个可选的媒体类型和零个或多个使用媒体功能的限制了样式表范围的表达式组成,例如宽度.高度和颜色.媒体查询, ...

  7. 基于Vue实现关键词实时搜索高亮显示关键词

    最近在做移动real-time-search于实时搜索和关键词高亮显示的功能,通过博客的方式总结一下,同时希望能够帮助到别人~~~ 如果不喜欢看文字的朋友我写了一个demo方便已经上传到了github ...

  8. css布局基础总结

    前端css布局知识繁杂,实现方式多种多样.想写出高效.合理的布局,必须以深厚的css基础为前提.为了方便记忆和复习,将css布局要点记录如下.内容较多,应用方面说的不太详细,但都是很实用的点. 所谓布 ...

  9. webstrom Debug 调试vue项目

    第一种,使用vue插件 下载插件:https://chrome.google.com/web... 这样直接run一个vue项目,你就会看见插件标亮了 打开调试模式,你就会看见最后有个vue标记,打开 ...

  10. Java/C++实现迭代器模式---学生信息

    信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代器和C++中标准模板库(STL)实现对同学信息的遍历,要求按照学号从小到大和从大到小两种次序输出学生信息. Jav ...