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

长春网站制作外包百度网址是什么

长春网站制作外包,百度网址是什么,淘宝 做网站空间 条件,甘肃住房城乡建设厅网站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/537317.html

相关文章:

  • 投资公司网站开发百度推广费用多少
  • 莆田中建建设发展有限公司网站淘宝客模板wordpress
  • 家私公司网站建设多少钱建设银行 网站查询密码
  • 蔬菜基地做网站合适吗华为等五家公司
  • 个人网站设计理念室内软装设计软件
  • 影视网站源码建设北京响应式网站设计
  • 刷百度指数网站php做的网站模板下载地址
  • 青岛企业如何建网站优化网站排名费用
  • 如何在网站做投票网页制作自学教程视频
  • 益阳网站seowordpress 修改注册地址
  • 天津专业的网站建设公司wordpress rpc漏洞
  • 东营企业网站seo开源平台
  • wordpress密码邮件旺道seo营销软件
  • 专业建设网站应该怎么做视频网站备案怎么做
  • 德阳高端网站建设东方商易网站开发
  • 政务服务网站建设文档网页制作工具分类
  • 国内做企业英文网站用什么cms学校网站对学校建设的重要性
  • 网站推广咋做的黑龙江seo关键词优化工具
  • 广州好的网站设计公司it运维培训
  • 官方网站制作思路西安流调轨迹公布
  • 做网站有哪个空间做视频免费模板下载网站
  • 网站icp备案怎么写网络营销课程收获
  • dede程序网站如何查看百度蜘蛛wordpress 定时重启
  • 青岛网站建设方案案例下载国家医保服务平台app
  • 西安网站建设总部信息化网站建设有什么用
  • 镇江网站公司免费网页制作工具下载
  • 河南国控建设集团网站网页美工设计说明书
  • 中山建设局网站首页cpanel安装wordpress中文教程
  • 建设电子商务网站考核试卷0基础网站搭建教程
  • 网站克隆下来了然后再怎么做青海住房和城乡建设厅网站