【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.mzph.cn/news/824561.shtml

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

相关文章

二叉树前序遍历​​​​​​​到底部为何会返回到顶部?函数调用栈

前序遍历是一种二叉树的遍历方式&#xff0c;其遍历顺序是先访问根节点&#xff0c;然后递归地遍历左子树&#xff0c;最后递归地遍历右子树。具体来说&#xff0c;前序遍历的顺序是根节点->左子树->右子树。 前序遍历到底部为何会返回到顶部是因为在进行递归遍历时&…

启明智显应用分享|基于ESP32-S3方案的SC01PLUS彩屏与chatgpt融合应用DEMO

今天将带大家真实体验科技与智慧的完美融合——SC01PLUS与ChatGPT的深度融合DEMO效果呈现。 彩屏的清晰显示与ChatGPT的精准回答&#xff0c;将为我们带来前所未有的便捷与高效。 SC01PLUS是启明智显基于ESP32-S3打造的一款3.5寸480*320分辨率的彩屏产品&#xff0c;您可以看…

32、模拟队列

模拟队列 题目描述 实现一个队列&#xff0c;队列初始为空&#xff0c;支持四种操作&#xff1a; (1) “push x” – 向队尾插入一个数x&#xff1b; (2) “pop” – 从队头弹出一个数&#xff1b; (3) “empty” – 判断队列是否为空&#xff1b; (4) “query” – 查询…

【Git】git命令大全(持续更新)

本文架构 0.描述git简介术语 1.常用命令2. 信息管理新建git库命令更改存在库设置获取当前库信息 3.工作空间相关将工作空间文件添加到缓存区&#xff08;增&#xff09;从工作空间中移除文件&#xff08;删&#xff09;撤销提交 4.远程仓库相关同步远程仓库分支 &#xff08;持…

高版本Android studio 使用Markdown无法预览(已解决)

目录 概述 解决方法 概述 本人升级Android studio 当前版本为Android Studio Jellyfish | 2023.3.1 RC 2导致Markdown无法预览。 我尝试了很多网上的方法都无法Markdown解决预览问题&#xff0c;包括升级插件、安装各种和Markdown相关的插件及使用“Choose Boot Java Runtim…

yolov5 自训练pt模型转onnx,再转rknn,并部署 注意事项

yolov5 部署到rk3588 教程来自 yolov5训练pt模型并转换为rknn模型&#xff0c;部署在RK3588开发板上——从训练到部署全过程_yolov5 rknn-CSDN博客 1.通过android studio 部署代码在rk3588板子上运行代码 项目来源 rknn-toolkit2/rknpu2/examples/rknn_yolov5_android_apk…

使用AWK进行文本处理

awk 的基本概念 awk 是一种强大的文本处理语言&#xff0c;广泛用于模式匹配和数据提取。这种编程语言设计用于对文本文件进行操作&#xff0c;尤其适用于格式化的文本&#xff0c;如 CSV 或空格分隔的表格数据。下面详细介绍 awk 的一些基本概念&#xff1a; 1. 记录和字段 …

一文了解OCI标准、runC、docker、contianerd、CRI的关系

docker和contanerd都是流行的容器运行时&#xff08;container runtime&#xff09;&#xff1b;想讲清楚他们两之间的关系&#xff0c;让我们先从runC和OCI规范说起。 一、OCI标准和runC 1、OCI&#xff08;open container initiative&#xff09; OCI是容器标准化组织为了…

利用动态规划优化10年投资回报:策略、证明与算法分析

利用动态规划优化10年投资回报&#xff1a;策略、证明与算法分析 a. 存在最优投资策略的证明b. 最优子结构性质的证明c. 最优投资策略规划算法设计d. 新限制条款下最优子结构性质的证明 在面对投资策略规划问题时&#xff0c;我们的目标是在10年后获得最大的回报。Amalgamated投…

Java上传文件到服务器

1、使用jsch <!--sftp文件上传--><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency> 2、配置类 package com.base.jsch;import lombok.Data; import o…

数据结构与算法-哈希表

哈希表 哈希表&#xff08;hash table&#xff09;&#xff0c;又称散列表&#xff0c;它通过建立键 key 与值 value 之间的映射&#xff0c;实现高效的元素查询。具体而言&#xff0c;我们向哈希表中输入一个键 key &#xff0c;则可以在 时间内获取对应的值 value 。 1.基础…

牛客 NC205 跳跃游戏(三)【中等 贪心 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/14abdfaf0ec4419cbc722decc709938b 思路 参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可*** …

搜维尔科技:Manus Xsens Metagloves新一代手指捕捉

Manus Xsens Metagloves新一代手指捕捉 搜维尔科技&#xff1a;Manus Xsens Metagloves新一代手指捕捉

Go 单元测试之Mysql数据库集成测试

文章目录 一、 sqlmock介绍二、安装三、基本用法四、一个小案例五、Gorm 初始化注意点 一、 sqlmock介绍 sqlmock 是一个用于测试数据库交互的 Go 模拟库。它可以模拟 SQL 查询、插入、更新等操作&#xff0c;并且可以验证 SQL 语句的执行情况&#xff0c;非常适合用于单元测试…

基于SpringBoot+Vue社区医院服务平台(源码+文档+包运行)

一.系统概述 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了社区医院信息平台的开发全过程。通过分析社区医院信息平台管理的不足&#xff0c;创建了一个计算机管理社区医院信息平台的方案。文章介绍了社区医院信息…

如何在Linux CentOS部署宝塔面板并实现固定公网地址访问内网宝塔

文章目录 一、使用官网一键安装命令安装宝塔二、简单配置宝塔&#xff0c;内网穿透三、使用固定公网地址访问宝塔 宝塔面板作为建站运维工具&#xff0c;适合新手&#xff0c;简单好用。当我们在家里/公司搭建了宝塔&#xff0c;没有公网IP&#xff0c;但是想要在外也可以访问内…

QAnything部署Mac m1环境

本次安装时Qanything已经更新到了v1.3.3&#xff0c;支持纯python安装。安装过程比较简单&#xff0c;如下&#xff1a; QAnything/README_zh.md at qanything-python-v1.3.1 netease-youdao/QAnything GitHub 首先需要用Anaconda3创建隔离环境&#xff0c;简要说明下Anaco…

春藤实业启动SAP S/4HANA Cloud Public Edition项目,与工博科技携手数字化转型之路

3月11日&#xff0c;广东省春藤实业有限公司&#xff08;以下简称“春藤实业”&#xff09;SAP S/4HANA Cloud Public Edition&#xff08;以下简称“SAP ERP公有云”&#xff09;项目正式启动。春藤实业董事长陈董、联络协调项目经理慕总、内部推行项目经理陈总以及工博董事长…

SQLAlchemy批量更新

在 SQLAlchemy 1.4 版本中&#xff0c;批量更新仍然是一个常见的需求。虽然 SQLAlchemy 1.4 引入了一些新功能和改进&#xff0c;但基本的批量更新策略与之前的版本相似。以下是一些在 SQLAlchemy 1.4 中执行批量更新的常见方法&#xff1a; 1. 使用 update() 语句 你可以使用…

酒店水电能源计量管理系统

酒店水电能源计量管理系统是一种针对酒店行业设计的能源管理系统&#xff0c;旨在实现对水电能源的计量、监测和管理。本文将从系统特点、构成以及带来的效益三个方面展开介绍。 系统特点 1.多元化计量&#xff1a;该系统能够对酒店内的水、电能源进行多元化计量&#xff0c;…