当前位置: 首页 > wzjs >正文

苗木企业网站源码seo外包方案

苗木企业网站源码,seo外包方案,做纺织生意用什么网站好,天津做网站比较好的公司AlphaFold3 rigid_utils 模块Rotation类的 map_tensor_fn方法主要作用是对旋转矩阵或四元数上的最后一维应用一个函数 (fn) ,并返回一个新的 Rotation 对象。 源代码: def map_tensor_fn(self, fn: Callable[torch.Tensor, torch.Tensor]) -> Rotati…

AlphaFold3 rigid_utils 模块Rotation类的 map_tensor_fn方法主要作用是对旋转矩阵或四元数上的最后一维应用一个函数 (fn) ,并返回一个新的 Rotation 对象。

源代码:

    def map_tensor_fn(self, fn: Callable[torch.Tensor, torch.Tensor]) -> Rotation:"""Apply a Tensor -> Tensor function to underlying rotation tensors,mapping over the rotation dimension(s). Can be used e.g. to sum outa one-hot batch dimension.Args:fn:A Tensor -> Tensor function to be mapped over the Rotation Returns:The transformed Rotation object""" if(self._rot_mats is not None):rot_mats = self._rot_mats.view(self._rot_mats.shape[:-2] + (9,))rot_mats = torch.stack(list(map(fn, torch.unbind(rot_mats, dim=-1))), dim=-1)rot_mats = rot_mats.view(rot_mats.shape[:-1] + (3, 3))return Rotation(rot_mats=rot_mats, quats=None)elif(self._quats is not None):quats = torch.stack(list(map(fn, torch.unbind(self._quats, dim=-1))), dim=-1)return Rotation(rot_mats=None, quats=quats, normalize_quats=False)else:raise ValueError("Both rotations are None")

代码解读:

方法签名
def map_tensor_fn(self, fn: Callable[torch.Tensor, torch.Tensor]) -> Rotation:
  • fn:接收一个 Tensor,返回一个 Tensor,典型用途是对旋转的某个维度做变换,比如求和、加权平均等。

  • 返回值:一个新的 Rotation 对象,里面装着变换后的旋转矩阵 (rot_mats) 或四元数 (quats)。

处理旋转矩阵 (_rot_mats)

如果 self._rot_mats 存在,就走这条分支:

if self._rot_mats is not None:# 把 (batch_size, ..., 3, 3) reshape 成 (batch_size, ..., 9)rot_mats = self._rot_mats.view(self._rot_mats.shape[:-2] + (9,))

✅ 解释
view() 是为了把 3x3 的旋转矩阵摊平成 9 维向量,方便对最后一维应用函数。

rot_mats = torch.stack(list(map(fn, torch.unbind(rot_mats, dim=-1))), dim=-1
)

✅ 解释

  1. torch.unbind():沿最后一维解开成 9 个独立的张量。

  2. map(fn, ...):对每个解开的张量应用 fn

  3. torch.stack():把变换后的 9 个张量重新堆叠回去。

注: torch.unbind 维度 -1 ,torch.stack 维度 +1, 并且都处理相同的维度(-1)。

rot_mats = rot_mats.view(rot_mats.shape[:-1] + (3, 3))
return Rotation(rot_mats=rot_mats, quats=None)

✅ 解释
把 9 维向量重新 reshaped 成 (3, 3) 矩阵,并用它创建一个新的 Rotation 对象。

处理四元数 (_quats)

如果矩阵不存在,走四元数分支:

elif self._quats is not None:quats = torch.stack(list(map(fn, torch.unbind(self._quats, dim=-1))), dim=-1)return Rotation(rot_mats=None, quats=quats, normalize_quats=False)

✅ 解释

  • 逻辑和矩阵类似,先 unbind() 分解四元数的最后一维,对每个部分应用 fn(),再 stack() 堆叠回来。

  • 创建新 Rotation 对象时加了 normalize_quats=False,说明这一步不需要再归一化。

 防错处理

如果两个旋转表示都没有,抛出异常:

else:raise ValueError("Both rotations are None")

总结

map_tensor_fn() 是一种 高阶函数,它能灵活地对旋转矩阵或四元数的最后一维执行各种操作(比如求和、加权、归一化、剪裁等)。

核心逻辑:

  • 矩阵路径 → reshape(9维) → 分解 → 应用函数 → 堆叠 → 恢复3x3

  • 四元数路径 → 分解 → 应用函数 → 堆叠

http://www.dtcms.com/wzjs/908.html

相关文章:

  • 社区做图网站有哪些内容营销咨询服务
  • 受欢迎的网站开发长沙企业seo优化
  • 天元建设集团有限公司商业承兑汇票信誉怎么样seo全称英文怎么说
  • 济南网站建设行知keji广告联盟代理平台
  • 网站描述多个词怎么分隔中国最新新闻
  • 怎样下载做网站的软件如何在百度上推广自己
  • 大气蓝色律师网站phpcms模板app怎么推广运营
  • 做浏览单的网站有哪些seo入门教程视频
  • 网站是用什么技术做的网络广告营销有哪些
  • 单页网站修改webview播放视频
  • 怎么做自己的充值网站广告联盟广告点击一次多少钱
  • 甘肃网站定制开发360站长工具seo
  • b2b网站建设方案大学生网络营销策划书
  • wordpress 插件 原理网站seo诊断报告
  • 公司网站推广怎么做重庆高端seo
  • 建设食品网站如何定位百度网址是什么
  • 高端建站服务商上海优化公司选哪个
  • vs2015 手机网站开发百度竞价点击价格公式
  • 设计素材网站照片在线网站分析工具
  • 做简单网站需要学什么软件有哪些内容可以搜索国外网站的搜索引擎
  • 南京做企业网站的公司自贡网站seo
  • 无忧网站建设推荐网站搜索引擎优化诊断
  • 一个专门做澳洲直邮的网站搜索大全引擎入口网站
  • 中企动力科技股份有限公司汕头分公司seo课培训
  • 怎么知道这网站是php语言做的北京搜索引擎优化seo专员
  • 网站做百度推广多少钱免费制作自己的网页
  • 博罗网站定制如何建立自己的网络销售
  • 婚庆网站哪个靠谱常州百度搜索优化
  • 网站的可视化设计如何做网页制作
  • 代运营网站建设网站搜索引擎优化主要方法