torch.permute()/torch.cat()/torch.add()

学习记录——关UNet、特征图add、cat、相乘、三个 注意力 通俗的来讲就是在网络的高层(就是U型的上部分),获取了图形的细节信息(因为这时候图片很大,很多细节可以得以保留)。特征图拼接的优点是能够保留两个特征图的所有信息,适用于需要同时考虑不同特征的任务。通过add操作,会得到新的特征,这个新的特征可以反映原始特征的一些特性,但是原始特征的一些信息也会在这个过程中损失。这部分有利于将下采样的各个阶段的信息在上采样过程中进行整合,就是在上采样的过程中,结合了各个层次的结构信息。特征图相乘的优点是可以增强共同出现的特征并减弱不重要的特征,适用于需要突出共同特征的任务。 阅读详情

维度转换

在torch中应用卷积的时候,我们有时候遇到一些问题。在cv领域我们常见的就是用二维卷积将图片中各种特征进行提取,但是目标检测、分割中都没有涉及到时域。但是一旦涉及到提取时域特征的话,下面三种维度转换就会非常有用,我们可以建立更加丰富的网络。我们可以用一维、二维、三维卷积提取到更加丰富的信息,提升我们网络的鲁棒性。

1.卷积维度合并

torch中torch.cat()和paddle、tensorflow中concate一样,将目标特征图在不同维度上进行拼接。
应用场景,当将特征图分块处理之后,我们在需要将特征进行形状还原的时候使用。而torch.add()代表 的尺寸一样的特征图进行内值相加。这种一般用于特征融合的,提取多特征的时候进行特征融合的时候使用。

// An highlighted block
x0 = torch.rand(3, 224, 224)
x1 = torch.rand(3, 224, 224)
y0 = torch.cat((x0, x1),0).size() #其中0代表合并的维度,表示在第一维度合并
print(y0)
y1 = torch.add(x0,x1).size()
print(y1)

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

2 维度变换

尺度对应,当然tensor.view()还有其他用法,具体参考源码
将特征直接进维度融合,形状不一样,大小一样。

// An highlighted block
x0 = torch.rand(3, 224, 224)
c, h, w = x0.size()
x0_t0 = x0.view(c * h, w)
print(x0_t0.size())

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

3 维度转换

类似于[h,w]转换成[w,h],在建立卷积网络的过程中需要用到不同维度卷积时,我们可以用以下方法进行维度转换来做卷积前的准备工作。

x0 = torch.rand(3, 224, 224)
print(x0.size())
x1 = x0.permute([2,0,1])#维度转换,[2,0,1]中表示矩阵的维度
print(x1.size())

输出结果
在这里插入图片描述
补充一点,用permute函数之后,我们需要用continuous函数进行连接,因为permute函数将原特征进行分裂重组了,使用continuous函数能够使得数据只进行维度转换,数据不会被打乱。
掌握以上的三个小技巧,我们建立网络就会更加得心应手!

pytorch学习笔记1:张量 目录 Tensor与numpy相互转换: torch.ones(),torch.add(),torch.zeros(),torch.squeeze() Tensor与numpy相互转换: import torch x=torch.Tensor(2,3)#生成一个4*5的Tensor张量 将Tensor转换为numpy数组 y=x.numpy() 将numpy数组转换为Tenso... 阅读详情

相关推荐

torch中permute()函数用法补充内容(矩阵维度变化详细过程)

目录一、前言二、举例解释解释部分1、permute(0,1,2)2、permute(0,1,2) ⇒ permute(0,2,1)3、permute(0,2,1) ⇒ permute(1,0,2)4、permute(1,0,2) ⇒ permute(0,2,1)三、写在最后 一、前言 之前写了篇torch中permute()函数用法文章,没想到收藏和点赞还挺多的 那我就在详细的说一下permute函数里维度变化的详细过程 注意: 本文是这篇torch中permute()函数用法文章的补充内容 如果有精力可以

ac不知深的博客 6656

Pytorch torch.add() torch.add_() 用法

Pytorch torch.add() torch.add_() 用法

百般回首曾经的相遇,留下的只是一缕残忆 1万+

PyTorch 2.3 张量基础:3个维度操作技巧与4种内存布局解析

本文深入解析PyTorch 2.3中张量的核心操作,包括3个维度操作技巧与4种内存布局。通过实战示例详细讲解view与reshape的区别、permute的高效转置以及expand与broadcasting机制,帮助开发者优化深度学习模型的性能与内存使用。特别探讨了Channels Last布局对卷积运算的显著性能提升,并提供了高级维度操作与内存优化技巧。

323

torch.cat()、 torch.add()、torch.subtract()、torch.subtract()和torch.div()函数详解和示例

本文通过原理和示例对torch.cat()、 torch.add()、torch.subtract()、torch.subtract()、torch.div()和torch.linalg.solve() 函数进行详解,以帮助大家理解和使用。

不定时分享,互相学习,共同进步 4191

PyTorch Tensor 实战指南:7 类高频操作与 12 条 debug 铁律

Tensor 是 PyTorch 的核心数据载体,远不止是 NumPy 的替代品——它承载计算图构建、自动微分、GPU 调度与内存管理的全部语义。理解其创建机制(如 torch.tensor vs torch.Tensor)、设备迁移规则(to/cuda/empty_cache)、形状变换原理(view/reshape/permute)及梯度控制逻辑(detach/require_grad_/no_grad),是避免 RuntimeError、显存溢出和梯度消失的关键。尤其在工业级训练中,dtype 不匹配

shirlly 827

R语言构建神经网络:从tidymodels预处理到torch部署的全链路实践

神经网络作为现代机器学习的核心范式,其本质是通过可微分函数逼近复杂非线性关系。理解张量运算、反向传播与模型泛化原理,是跨越统计建模与深度学习鸿沟的关键。在数据科学工程实践中,R语言凭借tidymodels统一接口、torch原生张量支持及shiny/plumber轻量部署能力,已形成区别于Python的高效神经网络落地路径。尤其适合熟悉dplyr、ggplot2和基础建模(如lm)的数据分析师、生物信息研究者与社会科学量化工作者,无需CUDA底层知识即可完成LSTM时序预测、图像分类与合同文本异常检测等任务

357

0_Pytorch中的张量操作

小写 t: 根据指定数据创建大写 T: 既可以根据指定数据创建,也可以根据形状创建Tensor: 不指定类型(Type)Tensor: 指定类型。

weixin_44579176的博客 1459

张量可视化本质:用快递站类比理解维度与索引

张量是深度学习中最基础也最易被误解的数据结构,其核心并非高维空间几何,而是多维索引寻址机制。从标量到六维张量,本质都是‘用N个整数下标唯一定位一个数值’——这正是索引自由度的工程定义。快递站模型将shape解构为‘楼号、单元、楼层、房号’等可执行的寻址指令,使维度脱离抽象空间幻觉,回归内存定位本质。该视角直接支撑PyTorch张量操作的底层逻辑:连续内存布局、广播对齐规则、transpose与permute的元数据差异、以及view/reshape的连续性约束。掌握这一思维,能系统规避RuntimeErro

wyjvip333的专栏 411

torch学习 (42):tensor的索引、切片、拼接,以及变异操作 (Indexing, Slicing, Joining, Mutating)

对torch中tensor的索引、切片、拼接等操作进行说明

因吉的博客 6593

(13)目标检测_SSD算法中几个奇怪函数的研究

dd

chencaw的专栏 413

【NLP】第十三章:Transformer原理、计算流程以及代码实现-3

至此我们手动计算的编码器和解码器的计算流程就结束了,和调包pytorch中的Transformer算法的计算结果一样,说明每步我们的原理、计算流程,以及各个细节都理解的没错。一般我们都是将0填充位置的值设置成一个非常小的负数,这样softmax后,这部分的注意力分值就无限趋近0了,也就相当于用0给mask了。所以上图的Linear层就是一个普通的全连接层,这个层的输入就是embedding_dim=6,输出就是tgt_vocab size=12,也所以这个线性层就是一个。

因为热爱所以坚持 1543

Pytroch中常用函数

1、torch.empty() torch.empty(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False, pin_memory=False) → Tensor 返回一个size大小的tensor,里面的数值是随机的,主要用到size,其它都是可选内容。 szie可以是列表,元组等。 2、torch.rand() torch.rand(*size,out=None) 返回一个大小为size

qq_44805233的博客 1959

手把手教你设计反激开关电源:从整流滤波到PCB布局的实战避坑指南

本文是一份反激开关电源的实战设计指南,重点解析了从整流滤波电路到PCB布局的关键细节与常见陷阱。文章深入探讨了输入保护元件协同设计、EMI滤波器优化、整流桥与滤波电容选型,并详细阐述了如何通过优化PCB布局来确保安规、最小化功率回路面积以控制噪声,旨在帮助工程师和爱好者规避设计误区,提升电源的可靠性与性能。

yhn45678901的博客 692

【深度学习|Day02】PyTorch 深度学习笔记(下):张量运算与自动微分

这篇笔记是PyTorch深度学习系列的下篇,聚焦张量运算与自动微分两大核心主题。内容从基本算术运算、矩阵乘法入手,系统梳理了索引切片、形状变换、拼接拆分等张量操作技巧,并深入剖析了PyTorch最核心的自动微分模块,从计算图原理、backward机制到手动梯度下降的完整实现,阐明了前向传播、反向传播与参数更新三个阶段的责任边界。

m0_73999950的博客 352

尚硅谷课程【笔记】——大数据之Shell【一】

【【尚硅谷】Shell脚本从入门到实战】笔记

n04j04h06的博客 1321

逆向分析PerimeterX px3:从混淆JS到生成有效令牌的完整实战

在Web安全与数据采集领域,反自动化防护是保障服务稳定和数据安全的关键技术。其核心原理是通过收集浏览器环境指纹和用户行为特征,动态生成加密令牌来区分真人用户与自动化脚本。这项技术的工程价值在于平衡安全性与用户体验,广泛应用于电商、金融、社交等需要防止恶意爬虫和自动化攻击的场景。本文聚焦于业界广泛部署的PerimeterX px3防护方案,通过JavaScript逆向工程,深入剖析其令牌生成机制。我们将探讨如何运用动态调试、反混淆工具和算法还原等关键技术,突破px3的防护壁垒,为自动化测试和数据采集提供稳定可

diankui6178的博客 533

Python后端开发之旅(五)——DL

pytorch入门操作以及常见的方法和库操作

少年何妨梦摘星,敢挽桑弓射玉衡。 他时若遂凌云志,敢笑黄巢不丈夫。 497

vue3 web项目引入高拍仪

高拍仪的引入步骤就两步,安装SDK,然后根据官网的api进行开发。根据自己需要的功能,请求对应的接口。

qq_42480170的博客 4118

c++ 部署libtorch 时对Tensor块的常用操作API (例如vector转换为torch、squeeze、select、select_indxe、max等)

使用pytorch可以很方便的训练了网络,并且pytorch的官方网站中放出了很全的python对tensor的操作接口API,但是在部署libtorch的时候,c++对tensor的操作接口API,资料不是很多哦,因此,我收集了我部署libtorch的时候,操作tensor块常用的接口API,其实很多和python的接口和类似。 文章目录1、vector 转为 tensor 块 2、torch::tensor.sizes() 返回的是{c10::ArrayRef} 类型 3、torch::empty(

weixin_36114648的博客 3553

MRI多序列,多中心数据集预处理--使用FSL-Flirt 配准数据

FLIRT(FMRIB 的线性图像配准工具)是用于线性(仿射)模态内和模态间脑图像配准的全自动稳健且准确的工具。 什么是配准 在这两张图片上,很容易看出它们没有对齐,左边相对右边倾斜,虽然我们人类视觉系统还是能把对应的解剖关系连系在一起,但是我们使用计算机分析时确不能够 因此,我们希望相同的解剖结构对齐,用坐标表示的话,希望他们在相同的坐标上。如下图 对齐这些解剖结构的过程就叫做配准(register) 因此,配准的目的也是使相同的解剖结构在同一个位置,便于分析。可以将CT和MRI配准,看同一结构在两个

Tina姐的博客 1万+

用友YonSuite产品实操手把手教学(图文版)

用友YonSuite

ct341688的博客 8171

零基础学AI人工智能:10.2 PyTorch框架

PyTorch是主流深度学习框架,具备动态图、自动微分和GPU加速,广泛用于研究与工业。核心数据结构为张量,支持多维数组运算,与NumPy高度兼容,提供创建(如torch.tensor)、类型转换、形状操作(如reshape)等接口。张量运算包括算术、矩阵乘法和聚合统计,并可无缝互转NumPy。自动微分通过动态计算图自动追踪梯度,简化训练。环境可通过pip安装并适配CUDA。掌握张量操作与自动微分是深度学习开发的基础。

wxkqweasd的博客 629

llama2-7b下载并转llama-2-7b-hf

④输入https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py会下载 convert_llama_weights_to_hf.py 文件,我们需要用到这个文件将llama2-7b转成llama-2-7b-hf。③下载完之后是这四个文件,这里我是在windows操作系统中安装的WSL,没有linux操作系统,没办法。

wenling54321的博客 1031

Pytorch学习之旅——tensor张量使用基础

文章目录tensor定义tensor运算tensor内置函数squeeze()和unsqueeze()函数 tensor定义 创建指定大小的tensor import torch a=torch.Tensor(2,3) print(a) tensor运算 tensor内置函数 只写常用的,其他的可以去网站查阅: squeeze()和unsqueeze()函数 https://blog.csdn.net/ZT0518/article/details/86440338 ...

zhanghm1995的博客 833

与本地电脑PDF文档对话的PDF问答程序

紧接着,从PDF文档中提取文本,这部分代码的作用是遍历PDF文档中的每一页,并使用extract text(0方法提取每一页的文本内容,然后将这些文本内容累加到raw text变量中。PDF问答程序的实现方式是利用LangChain已实现的向量存储、嵌入,以及使用查询和检索相关的链来获取外部数据集及处理文档,在进行相关性检索后进行合并处理,将其置入大语言模型的提示模板中,实现与PDF文件交流的目的。例如,你正在为一项重要的报告寻找资料,你必须知道你需要查找的关键词,然后在大量的信息中筛选出你需要的部分。

weixin_43961909的博客 1421

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【深度学习 | 第一篇】- Pytorch与张量

本文介绍了PyTorch深度学习框架的基础知识,重点讲解了张量(Tensor)的操作方法。主要内容包括:1) 张量的创建方式,如从数据、形状或特定类型创建;2) 张量的基本运算,包括四则运算、矩阵乘法和数学函数;3) 张量的索引和形状操作,如reshape、transpose等;4) 张量与NumPy数组的相互转换;5) 张量的类型转换方法。文章通过大量代码示例展示了PyTorch处理张量的核心功能,为深度学习入门提供了实用参考。

pusosjs的博客 422

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

下一篇: T2N
further_Yan
博客等级 码龄7年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值