怎么用PyTorch的einops张量操作神器
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍"怎么用PyTorch的einops张量操作神器",在日常操作中,相信很多人在怎么用PyTorch的einops张量操作神器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
千家信息网最后更新 2025年02月02日怎么用PyTorch的einops张量操作神器
这篇文章主要介绍"怎么用PyTorch的einops张量操作神器",在日常操作中,相信很多人在怎么用PyTorch的einops张量操作神器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用PyTorch的einops张量操作神器"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
安装:
pip install einops
基础用法
einops的强项是把张量的维度操作具象化,让开发者"想出即写出"。举个例子:
from einops import rearrange # rearrange elements according to the patternoutput_tensor = rearrange(input_tensor, 'h w c -> c h w')
用'h w c -> c h w'就完成了维度调换,这个功能与pytorch中的permute相似。但是,einops的rearrange玩法可以更高级:
from einops import rearrangeimport torch a = torch.randn(3, 9, 9) # [3, 9, 9]output = rearrange(a, 'c (r p) w -> c r p w', p=3)print(output.shape) # [3, 3, 3, 9]
这就是高级用法了,把中间维度看作r×p,然后给出p的数值,这样系统会自动把中间那个维度拆解成3×3。这样就完成了[3, 9, 9] -> [3, 3, 3, 9]的维度转换。
这个功能就不是pytorch的内置功能可比的。
除此之外,还有reduce和repeat,也是很好用。
from einops import repeatimport torch a = torch.randn(9, 9) # [9, 9]output_tensor = repeat(a, 'h w -> c h w', c=3) # [3, 9, 9]
指定c,就可以指定复制的层数了。
再看reduce:
from einops import reduceimport torch a = torch.randn(9, 9) # [9, 9]output_tensor = reduce(a, 'b c (h h3) (w w2) -> b h w c', 'mean', h3=2, w2=2)
这里的'mean'指定池化方式。 相信你看得懂,不懂可留言提问~
高级用法
einops也可以嵌套在pytorch的layer里,请看:
# example given for pytorch, but code in other frameworks is almost identical from torch.nn import Sequential, Conv2d, MaxPool2d, Linear, ReLUfrom einops.layers.torch import Rearrange model = Sequential( Conv2d(3, 6, kernel_size=5), MaxPool2d(kernel_size=2), Conv2d(6, 16, kernel_size=5), MaxPool2d(kernel_size=2), # flattening Rearrange('b c h w -> b (c h w)'), Linear(16*5*5, 120), ReLU(), Linear(120, 10), )
这里的Rearrange是nn.module的子类,直接可以当作网络层放到模型里~
到此,关于"怎么用PyTorch的einops张量操作神器"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
张量
维度
神器
学习
高级
功能
更多
好用
帮助
实用
相似
接下来
例子
具象
基础
子类
就是
开发者
强项
数值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库给人们带来哪些改变
oracle全局数据库名作用
软件开发银行领域的专业名词
武汉双线服务器托管
怎么在自己的电脑上找服务器
服务器未响应怎么解决
网络安全对经济发展重要性
手机搭建游戏服务器
加强网络安全什么建设
数据库插入记录实验
郑州移动宽带服务器
贺州电商系统软件开发
异步驱动数据库
自己搭建游戏服务器游戏参数
企业 无盘服务器
数据库删除已有触发器
判断数据库的用户类型
手机淘宝辅助软件开发
惠山区智能软件开发价格实惠
数据库的视图有哪几种
dell 服务器 720
华为网络安全证书是什么
云南省网络安全等级保护大会
量身定制软件开发
苹果格式化无法联系服务器
软件开发的毕业设计水不水
软件开发属不属信息系统服务
数据库表添加多个字段的值
成都市菜鸟网络技术有限公司
亿赛通数据库安全