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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【深度学习】:《PyTorch入门到项目实战》(十三)卷积神经网络:多通道输入和多通道输出 -> 正文阅读

[人工智能]【深度学习】:《PyTorch入门到项目实战》(十三)卷积神经网络:多通道输入和多通道输出

【深度学习】:《PyTorch入门到项目实战》(十三)卷积神经网络:多通道输入和多通道输出

  • ?本文收录于【深度学习】:《PyTorch入门到项目实战》专栏,此专栏主要记录如何使用PyTorch实现深度学习笔记,尽量坚持每周持续更新,欢迎大家订阅!
  • 🌸个人主页:JoJo的数据分析历险记
  • 📝个人介绍:小编大四统计在读,目前保研到统计学top3高校继续攻读统计研究生
  • 💌如果文章对你有帮助,欢迎?关注、👍点赞、?收藏、👍订阅专栏
  • 参考资料:本专栏主要以沐神《动手学深度学习》为学习资料,记录自己的学习笔记,能力有限,如有错误,欢迎大家指正。同时沐神上传了的教学视频和教材,大家可以前往学习。
  • 视频:动手学深度学习
  • 教材:动手学深度学习

请添加图片描述

多通道输入和多通道输出

前言

我们之前已经介绍了单通道的卷积是如何进行填充padding、stride的。然而在实际分析中,我们的目标任务往往是多通道的。本文介绍一下如何进行多通道输入和多通道输出。

1.多通道输入

假如说我们不仅想检测灰度图像的特征,而是想要检测RGB彩色图像的特征。彩色图像如果是6×6×3,这里的3指的是三个颜色通道,可以把它想象成三个6×6图像的堆叠。为了检测图像的边缘或者其他的特征,不是把它跟原来的3×3的过滤器做卷积,而是跟一个三维的过滤器,它的维度是3×3×3,这样这个过滤器也有三层,对应红、绿、蓝三个通道。具体如下所示

image-20220613205927832

注意:这个的输出会是一个4×4的图像,而不是不是4×4×3,。我们来分析一下这是如何计算的。首先,会拿这个3×3×3的卷积核先放到最左上角的位置,这个3×3×3的卷积核有27个数字,分别与原始图像对应的27个数字做内积。这样就得到了第一个数字,然后再根据相应的步长向右、向下移动。具体过程如下所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XjyipGpN-1655134705156)(img/image-20220613204352346.png)]

这样就将一个多输入通道的图像通过三维卷积核转换到了单输出通道图像。这意味着不论有多少输入通道,我们都只有一个输出通道。下面我们来看看如何进行多通道输出

2.多通道输出

在卷积神经网络中,有多个输出通道是至关重要的。在经典的神经网络架构中(例如LeNet,AlexNet,VGG等),随着神经网络层数的加深,我们常会增加输出通道的维数,通过减少空间分辨率以获得更大的通道深度。直观地说,我们可以将每个通道看作是对不同特征的反应。如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t9Vt4tIC-1655134475936)(img/image-20220613213103761.png)]

我们让这个6×6×3的图像和两个3×3×3的过滤器卷积。第一个是黄色卷积核,假设是一个垂直边界检测器。第二个卷积核是橘色,假设是一个水平边界检测器。这样就得到4×4×2的输出。根据这个我们可以发现,假设 c 0 c_0 c0?表示输入通道数, c 1 c_1 c1?表示输出通道数,则有n×n× c 0 c_0 c0?和一个 c 1 × f × f × c 0 c_1\times f\times f\times c_0 c1?×f×f×c0?的卷积核进行处理,得到一个 ( n ? f + 1 × c 1 ) × ( n ? f + 1 × c 1 ) (n-f+1\times c_1)\times (n-f+1 \times c_1) (n?f+1×c1?)×(n?f+1×c1?)的输出。

3.代码实现

3.1 多通道输入实现

# 导入相关库
import torch
from d2l import torch as d2l

def corr2d_multi_in(X, K):
    # 先遍历“X”和“K”的第0个维度(通道维度),再把它们加在一起。
    return sum(d2l.corr2d(x, k) for x, k in zip(X, K))

我们测试一下结果

X = torch.tensor([[[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]],               [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]])
K = torch.tensor([[[0.0, 1.0], [2.0, 3.0]], [[1.0, 2.0], [3.0, 4.0]]])
X.shape,K.shape
(torch.Size([2, 3, 3]), torch.Size([2, 2, 2]))

可以看出,输入是一个2通道 3 × 3 3\times3 3×3的数据,卷积核是 2 × 2 × 2 2\times2\times2 2×2×2,得到的结果为 2 × 2 2\times2 2×2

corr2d_multi_in(X, K)
tensor([[ 56.,  72.],
        [104., 120.]])

3.2 多通道输出实现

定义多通道输出函数

def corr2d_multi_in_out(X, K):
    # 迭代“K”的第0个维度,每次都对输入“X”执行互相关运算。
    # 最后将所有结果都叠加在一起,注意,这里我们只对K进行遍历
    return torch.stack([corr2d_multi_in(X, k) for k in K], 0)

使用stack将卷积核堆叠

K = torch.stack((K, K + 1, K + 2), 0)
K.shape
torch.Size([3, 2, 2, 2])

可以看出这是一个3个输出通道,2个输入通道的2×2卷积核,因此得到的结果为 3 × 2 × 2 3\times2\times2 3×2×2

corr2d_multi_in_out(X, K)
tensor([[[ 56.,  72.],
         [104., 120.]],

        [[ 76., 100.],
         [148., 172.]],

        [[ 96., 128.],
         [192., 224.]]])

在这里插入图片描述
本章的介绍到此介绍,如果文章对你有帮助,请多多点赞、收藏、评论、关注支持!!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:42:28  更:2022-06-16 21:42:52 
 
开发: 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/26 2:24:28-

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