IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习-torch-卷积神经网络 -> 正文阅读

[人工智能]深度学习-torch-卷积神经网络

一、基本概念
全连接神经网络:每相邻两个线性层之间的神经元都是全连接的神经网络。
在这里插入图片描述

卷积神经网络:保留数据原有特征情况下,对数据进行降维处理的网络模型。
经典的卷积神经网络有
1.LeNet
LeNet-5网络结构示意图
2.AlexNet
AlexNet网络结构示意图

3.VGG Net
4.GoogleNet
5.ResNet
6.MobileNet

二、卷积神经网络的基本组成部分
卷积层:用于特征提取
池化层:降维、防止过拟合
全连接层:输出结果

三、卷积层介绍
Output矩阵第一个元素是由Input矩阵中通过卷积核扫描到的第一个矩阵与卷积核进行数乘得到的结果:
在这里插入图片描述
用卷积核依次扫描Input矩阵做数乘,得到Output矩阵。(这里扫描的步长为1)在这里插入图片描述
三通道的矩阵需要用到的卷积核是一个三维的张量,卷积核的三个矩阵分别对输入矩阵的三个通道进行扫描,然后将扫描结果进行相加,并且一轮扫描只能得到一个通道的矩阵输出:
(在我第一次学习的时候,我理解错了,以为是用一个二维矩阵作为三通道输入矩阵的卷积核,对三个通道的矩阵分别扫描做数乘,然后进行矩阵加法,得到Output矩阵)
在这里插入图片描述
卷积核用于过滤各个图像块,如果某一个图像块和当前的卷积核的卷积结果较大,那么可以认为该图像块和当前卷积核比较接近。在这里插入图片描述
对于n通道的Input矩阵,它的卷积核是由n个二维矩阵组成的张量,形状是(n,k,k),Output矩阵的通道数为1。
在这里插入图片描述

如果是想得到多通道矩阵的输出,那么需要多个卷积核对三通道的矩阵进行扫描。假设输入通道为n,输出通道为m,那么输入的卷积核的shape应为(m,n,k,k)
(卷积核和宽与高可以不等,但一般为方阵,便于计算)
在这里插入图片描述
输出结果为多通道矩阵用到的4维卷积核:
在这里插入图片描述
padding:为了保证输入矩阵和输出矩阵的大小保持一致,如果卷积核大小是33,需要进行一圈的填充;如果卷积核大小是55,需要进行两圈的填充。
在这里插入图片描述
代码:

import torch
#初始化一个列表,用于转化成Input矩阵
input=[1,2,3,4,5,
       6,3,4,7,2,
       3,4,6,8,9,
       2,9,7,4,3,
       3,4,3,7,1]

#将输入的列表通过view转化成张量,四个参数分别为(batch,channel,width,height)
input=torch.Tensor(input).view(1,1,5,5)

#定义一个卷积层,参数1,1分别为输出通道,输入通道
conv_layer=torch.nn.Conv2d(1,1,kernel_size=3,padding=1,stride=1,bias=False)

#定义一个输出通道为1,输入通道为1,大小为3*3的卷积核
kernel=torch.Tensor([1,2,3,4,5,6,7,8,9]).view(1,1,3,3)

#conv_layer.weight.data是一个张量
conv_layer.weight.data=kernel.data

#输出为一个张量
output=conv_layer(input)
print(output)

结果输出:
在这里插入图片描述
四、池化层介绍

import torch
#输入一个列表,用于转化成Input矩阵
input=[1,2,5,4,
       3,4,6,6,
       2,7,8,10,
       3,4,9,1]

#将输入的列表通过view转化成张量,四个参数分别为(batch,channel,width,height)
input=torch.Tensor(input).view(1,1,4,4)

#定义一个平均池化层,输出shape为2*2
#max_pooling=torch.nn.AdaptiveAvgPool2d((2,2))
#定义一个2*2的最大池化层
max_pooling=torch.nn.MaxPool2d(kernel_size=2)

#输出为一个张量
output=max_pooling(input)
print(output)

结果输出:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:24:05  更:2021-10-18 17:25:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:31:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码