首页 > 其他分享 >卷积神经网络多输入和多输出的通道数(李沐老师课程)

卷积神经网络多输入和多输出的通道数(李沐老师课程)

时间:2024-09-10 19:52:18浏览次数:10  
标签:multi 1.0 卷积 torch corr2d 神经网络 李沐 out

多通道卷积计算

特殊的卷积层1*1卷积核

代码:

"""
​
多输入多输出的互相关运算
"""
import torch
from torch import nn
from d2l import torch as d2l
​
"""
实现多输入通道互相关运算
"""
​
​
def corr2d_multi_in(x, k):
    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]]])
print(corr2d_multi_in(X, K))
​
"""
计算多个通道的输出的互相关函数
"""
​
​
def corr2d_multi_in_out(X, K):
    return torch.stack([corr2d_multi_in(X, k) for k in K], 0)
​
​
K = torch.stack((K, K + 1, K + 2), 0)
print(K.shape)
​
print(corr2d_multi_in_out(X, K))
​
"""
1*1卷积
"""
​
​
def corr2d_multi_in_out_1_1(X, K):
    c_i, h, w = X.shape
    c_o = K.shape[0]
    X = X.reshape((c_i, h * w))
    K = K.reshape((c_o, c_i))
    Y = torch.matmul(K, X)
    return Y.reshape((c_o, h, w))
​
​
X = torch.normal(0, 1, (3, 3, 3))
K = torch.normal(0, 1, (2, 3, 1, 1))
Y1 = corr2d_multi_in_out_1_1(X, K)
Y2 = corr2d_multi_in_out(X, K)
assert float(torch.abs(Y1 - Y2).sum()) < 1e-6

标签:multi,1.0,卷积,torch,corr2d,神经网络,李沐,out
From: https://blog.csdn.net/2401_87085787/article/details/142107878

相关文章

  • 关于神经网络过拟合的问题,我来解答一下!
    我们可以逐一进行分析:一.为什么模型很快就过拟合了,也就是验证集的损失在几十次迭代后就开始上升了?模型很快出现过拟合的原因可能有几个:模型复杂度过高:如果模型(如神经网络)的容量(即参数数量、层数等)相对于数据集的规模来说过大,那么模型很容易学习到训练数据中的噪声和细节,导......
  • *Python*机器学习算法——神经网络和深度学习
            神经网络和深度学习是现代机器学习的重要组成部分,它们在图像识别、语音识别、自然语言处理等多个领域取得了显著的成功。本文将详细介绍神经网络和深度学习的基本函数概念,并通过一个简单的例子来展示如何使用Python和Keras库构建一个神经网络模型。1、前置库......
  • 卷积神经网络(李沐老师课程)
    卷积神经网络(李沐老师课程)回顾MLP单层(上述列子需要14GBGPU)找寻图片上的人在哪里找寻图片上的人的两个基本原则从全连接层出发到卷积卷积层二维交叉相关二维卷积层案列交叉相关和卷积代码的实现importtorchfromtorchimportnnfromd2limportt......
  • TimesNet - 时序升维卷积任务通用模型 论文笔记 ICLR2023
    论文信息标题:Timesnet:Temporal2d-variationmodelingforgeneraltimeseriesanalysis作者:HaixuWu,TenggeHu,YongLiu,HangZhou,JianminWang,MingshengLong代码:https://github.com/thuml/TimesNet[原仓库,代码已迁移到TSLib]https://github.com/thuml/Time-Ser......
  • 标准神经网络怎么处理词向量
    词向量输入到标注神经网络好的,我来通过一个具体的例子,详细说明如何将多个词向量堆叠成矩阵,或者通过池化或取平均的方法,将其转换为一个固定长度的向量,然后输入到标准的前馈神经网络中。假设我们有一个句子:"Ilovecats"这个句子包含三个单词:"I"、"love"和"cats"。假设我们......
  • 深度学习基础案例4--运用动态学习率构建CNN卷积神经网络实现的运动鞋识别(测试集的准
    ......
  • 多输入多输出 | Matlab实现DBO-BP蜣螂算法优化BP神经网络多输入多输出预测
    多输入多输出|Matlab实现DBO-BP蜣螂算法优化BP神经网络多输入多输出预测目录多输入多输出|Matlab实现DBO-BP蜣螂算法优化BP神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料预测效果基本介绍多输入多输出|Matlab实现DBO-BP蜣螂算法......
  • KernelWarehouse:英特尔开源轻量级涨点神器,动态卷积核突破100+ | ICML 20242A
    动态卷积学习n个静态卷积核的线性混合,加权使用它们输入相关的注意力,表现出比普通卷积更优越的性能。然而,它将卷积参数的数量增加了n倍,因此并不是参数高效的。这导致不能探索n>100的设置(比典型设置n<10大一个数量级),推动动态卷积性能边界提升的同时享受参数的高效性。为此,论文提出......
  • KernelWarehouse:英特尔开源轻量级涨点神器,动态卷积核突破100+ | ICML 2024
    动态卷积学习n个静态卷积核的线性混合,加权使用它们输入相关的注意力,表现出比普通卷积更优越的性能。然而,它将卷积参数的数量增加了n倍,因此并不是参数高效的。这导致不能探索n>100的设置(比典型设置n<10大一个数量级),推动动态卷积性能边界提升的同时享受参数的高效性。为此,论文提出......
  • 每天五分钟玩转深度学习框架PyTorch:将nn的神经网络层连接起来
    本文重点前面我们学习pytorch中已经封装好的神经网络层,有全连接层,激活层,卷积层等等,我们可以直接使用。如代码所示我们直接使用了两个nn.Linear(),这两个linear之间并没有组合在一起,所以forward的之后,分别调用了,在实际使用中我们常常将几个神经层组合在一起,这样不仅操作方便,而且......