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

AF3 distogram_loss函数解读

AlphaFold3 的distogram loss函数用于训练中比较预测的距离分布(由 logits 表示)与真实距离分布之间的差异。在蛋白质结构预测中,distogram 表示每对残基之间距离落在各个区间(bin)的概率分布,损失函数使用交叉熵来衡量预测分布与真实分布(通过计算残基之间的欧氏距离确定)之间的差异。

源代码:

def softmax_cross_entropy(logits, labels):
    loss = -1 * torch.sum(
        labels * F.log_softmax(logits, dim=-1),
        dim=-1,
    )
    return loss


def distogram_loss(
        logits: Tensor,  # (bs, n_tokens, n_tokens, n_bins)
        all_atom_positions,  # (bs, n_tokens * 4, 3)
        token_mask,  # (bs, n_tokens)
        min_bin: float = 0.0,
        max_bin: float = 32.0,
        no_bins: int = 64,
        eps: float = 1e-6,
        **kwargs,
) -> Tensor:  # (bs,)
    # TODO: this is an inelegant implementation, integrate with the data pipeline
    batch_size, n_tokens = token_mask.shape

    # Compute pseudo beta and mask
    all_atom_positions = all_atom_positions.reshape(batch_size, n_tokens, 4, 3)
    ca_pos = residue_constants.atom_order["CA"]
    pseudo_beta = all_atom_positions[..., ca_pos, :]  # (bs, n_tokens, 3)
    pseudo_beta_mask = token_mask  # (bs, n_tokens)

    boundaries = torch.linspace(
        min_bin,
        max_bin,
        no_bins - 1,
        device=logits.device,
    )
    boundaries = boundaries ** 2
    dists = torch.sum(
        (pseudo_beta[..., :, None, :] - pseudo_beta[..., None, :, :]) ** 2,
        dim=-1,
        keepdim=True,
    )
    true_bi

http://www.kler.cn/a/540087.html

相关文章:

  • Avnet RFSoC基于maltab得5G 毫米波 开发工具箱
  • apache-poi导出excel数据
  • 【大数据技术】搭建完全分布式高可用大数据集群(ZooKeeper)
  • idea Ai工具通义灵码,Copilot我的使用方法以及比较
  • graylog初体验
  • 操作系统—进程与线程
  • 微信小程序案例2——天气微信小程序(学会绑定数据)
  • Java 开发面试全解析:15 个关键问题深度剖析
  • QNX800 virtual machine
  • Matlab自学笔记四十六:与日期向量、序列日期值、日期字符向量的转换
  • Elasticsearch+Kibana安装启动与操作教程
  • 手动配置IP
  • 开发一款类似《王者荣耀》的游戏是一个复杂的系统工程,涉及多个领域的知识和技术。以下是从多个角度详细阐述如何开发的思维。
  • 聚类算法概念、分类、特点及应用场景【机器学习】【无监督学习】
  • 如何将Excel的表格存为图片?
  • 【含文档+PPT+源码】基于微信小程序的乡村振兴民宿管理系统
  • 百度高德地图坐标转换
  • 基于C#语言的海康威视智能车牌识别系统
  • Spring Boot 线程池自定义拒绝策略:解决任务堆积与丢失问题
  • 2025年度Python最新整理的免费股票数据API接口
  • 『Apisix进阶篇』结合Consul作服务发现实战演练
  • Golang Gin框架mqtt消费者
  • 【分布式理论7】分布式调用之:服务间的(RPC)远程调用
  • ffmpeg 常用命令
  • modbus tcp,modbus,tcp几种通信方式的区别
  • 子集II(力扣90)