【Pytorch】Conv1d

在这里插入图片描述

conv1d 先看看官方文档

在这里插入图片描述

再来个简单的例子

import torch
import numpy as np
import torch.nn as nndata = np.arange(1, 13).reshape([1, 4, 3])
data = torch.tensor(data, dtype=torch.float)
print("[data]:\n", data)
conv = nn.Conv1d(in_channels=4, out_channels=1, kernel_size=3, stride=1, padding=0, bias=False)
print("[weight]:\n", conv.weight)
print("[element-wise multiply]:", (data*conv.weight).sum().item())
output = conv(data)
print("[output size]:", output.size())
print("[output]:", output)"""
[data]:tensor([[[ 1.,  2.,  3.],[ 4.,  5.,  6.],[ 7.,  8.,  9.],[10., 11., 12.]]])
[weight]:Parameter containing:
tensor([[[ 0.2599, -0.1309, -0.2319],[-0.1974, -0.0371, -0.1319],[-0.2190, -0.1151,  0.0644],[-0.0862, -0.2313,  0.1159]]], requires_grad=True)
[element-wise multiply]: -6.354348182678223
[output size]: torch.Size([1, 1, 1])
[output]: tensor([[[-6.3543]]], grad_fn=<SqueezeBackward1>)
"""

2D卷积是以 n 个 3D tensor 在二维平面滑动,所以叫 2D,标准2D卷积的卷积核 C C C 和输入特征图的 C i n C_{in} Cin 应该保持一致

在这里插入图片描述
忽略 C 的 2D conv 演示,金字塔,哈哈哈
在这里插入图片描述

同理

1D 卷积是以 n 个 2D tensor 在一维平面滑动,标准 1D 卷积核的 h 和 输入的 h 应该保持一致,别潜意识的理解为 h 只能等于 1,像下图这样,h = 1

在这里插入图片描述

再看一个稍微复杂的例子

eg:

import torch
import numpy as np
import torch.nn as nndata = np.arange(1, 13).reshape([1, 4, 3])
data = torch.tensor(data, dtype=torch.float)
print("[data]:\n", data)
conv = nn.Conv1d(in_channels=4, out_channels=2, kernel_size=3, stride=1, padding=0, bias=False)
print("[weight]:\n", conv.weight)
print("[element-wise multiply]:", (data*conv.weight[0]).sum().item())
print("[element-wise multiply]:", (data*conv.weight[1]).sum().item())
output = conv(data)
print("[output size]:", output.size())
print("[output]:", output)"""
[data]:tensor([[[ 1.,  2.,  3.],[ 4.,  5.,  6.],[ 7.,  8.,  9.],[10., 11., 12.]]])
[weight]:Parameter containing:
tensor([[[-0.1565,  0.2598, -0.2152],[-0.0130, -0.1495, -0.0799],[-0.2842, -0.1508, -0.1939],[-0.1133, -0.2627,  0.1949]],[[ 0.0576,  0.1712, -0.1465],[-0.2060,  0.1648,  0.2039],[ 0.2221, -0.1940,  0.1126],[-0.2098, -0.0749,  0.1407]]], requires_grad=True)
[element-wise multiply]: -8.187724113464355
[element-wise multiply]: 0.9679145812988281
[output size]: torch.Size([1, 2, 1])
[output]: tensor([[[-8.1877],[ 0.9679]]], grad_fn=<SqueezeBackward1>)
"""

结合可视化看看 1D 卷积是怎么滑动的(来自 添加链接描述)

eg

m = nn.Conv1d(4, 2, 3, stride=2)
input = torch.randn(1, 4, 9)
print(input)
output = m(input)
print(output)
print(output.size())

output

tensor([[[-0.2105, -1.0958,  0.7299,  1.1003,  2.3175,  0.8186, -1.7510,  -0.1925,  0.8591],[ 1.0991, -0.3016,  1.5633,  0.6162,  0.3150,  1.0413,  1.0571,  -0.7014,  0.2239],[-0.0658,  0.4755, -0.6653, -0.0696,  0.3483, -0.0360, -0.4665,   1.2606,  1.3365],[-0.0186, -1.1802, -0.8835, -1.1813, -0.5145, -0.0534, -1.2568,   0.3211, -2.4793]]])tensor([[[-0.8012,  0.0589,  0.1576, -0.8222],[-0.8231, -0.4233,  0.7178, -0.6621]]], grad_fn=<SqueezeBackward1>)torch.Size([1, 2, 4])

第一个卷积核
在这里插入图片描述
第二个卷积核
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/625455.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【每日刷题】Day16

【每日刷题】Day16 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 2. 160. 相交链表 - 力扣&…

智慧园区解决方案一站式资料大全:标准规范顶层设计指南、供应商整体解决方案及售前PPT、标准白皮书、全国前50智慧园区集成商方案等全套600份,一次性打包下载

关键词&#xff1a;智慧园区解决方案&#xff0c;智慧园区整体解决方案&#xff0c;智慧园区建设总体方案设计&#xff0c;智慧园区综合管理系统&#xff0c;智慧产业园区解决方案&#xff0c;智慧产业园区规划方案&#xff0c;智慧园区建设规划方案&#xff0c;智慧工业园区建…

IO流-IO框架

简介 java的IO流操作提供了最简单的操作&#xff0c;第三方基于日常使用习惯&#xff0c;写了很多IO框架&#xff0c;更加方便操作避免重复造轮子&#xff0c;提高开发效率 Commons-io 简介 Commons-io是apche提供的IO操作的小框架 部分常用的API 引入依赖 <dependency>…

【智能算法】鸭群算法(DSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;Zhang等人受到自然界鸭群觅食行为启发&#xff0c;提出了鸭群算法&#xff08;Duck Swarm Algorithm, DSA&#xff09;。 2.算法原理 2.1算法思想 DSA基于自然界鸭群觅食过程&…

Adobe AE(After Effects)2019下载地址及安装教程

Adobe After Effects是一款专业级别的视觉效果和动态图形处理软件&#xff0c;由Adobe Systems开发。它被广泛用于电影、电视节目、广告和其他多媒体项目的制作。 After Effects提供了强大的合成和特效功能&#xff0c;可以让用户创建出令人惊艳的动态图形和视觉效果。用户可以…

【机器学习300问】71、神经网络中前向传播和反向传播是什么?

我之前写了一篇有关计算图如何帮助人们理解反向传播的文章&#xff0c;那为什么我还要写这篇文章呢&#xff1f;是因为我又学习了一个新的方法来可视化前向传播和反向传播&#xff0c;我想把两种方法总结在一起&#xff0c;方便我自己后续的复习。对了顺便附上往期文章的链接方…

从汇编代码理解数组越界访问漏洞

数组越界访问漏洞是 C/C 语言中常见的缺陷&#xff0c;它发生在程序尝试访问数组元素时未正确验证索引是否在有效范围内。通常情况下&#xff0c;数组的索引从0开始&#xff0c;到数组长度减1结束。如果程序尝试访问小于0或大于等于数组长度的索引位置&#xff0c;就会导致数组…

停车资产数字化运营管理方案内容包括哪些?

随着新兴信息技术的蓬勃发展&#xff0c;如大数据、云服务、机器学习以及数字孪生等&#xff0c;停车行业正经历着前所未有的变革。这些技术的应用不仅推动了智慧停车领域的迅猛扩张&#xff0c;而且已成为全球各地数字化城市构建和城市治理现代化的关键驱动力。在数字化、平台…

代码随想录——双指针(一)

一.移动零 解法一&#xff1a;模拟 func moveZeroes(nums []int) {n:len(nums)l,r:0,1for r<n&&l<n{if nums[r]0{if nums[l]!0{lr}else{r}}else if nums[l]0{nums[l],nums[r]nums[r],nums[l]lr}else{lr}} }二.双指针 func moveZeroes(nums []int) {n:len(num…

Jackson 2.x 系列【28】Spring Boot 集成之 Long 精度损失

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 问题场景2. 原因分析3. 解决方案4. 案例演示4.…

计算机考研408真的很难吗?

408难&#xff01;科软有人四战没上岸&#xff0c;就是408拖的后腿&#xff01; 这位同学数二144英二81&#xff0c;真的太可惜了&#xff01; 是因为择校的问题吗&#xff1f; 看了他的备战经历后&#xff0c;我们发现&#xff0c;还真不是择校问题&#xff01; 是典型的备…

Jmeter03:直连数据库

1 Jmete组件&#xff1a;直连数据库 1.1 是什么&#xff1f; 让Jmeter直接和数据库交互 1.2 为什么&#xff1f; 之前是通过接口操作数据库&#xff0c;可能出现的问题&#xff1a;比如查询可能有漏查误查的情况&#xff0c;解决方案是人工对不&#xff0c;效率低且有安全隐患…