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

AF3 OpenFoldDataLoader类解读

AlphaFold3 data_modules 模块的 OpenFoldDataLoader 类继承自 PyTorch 的 torch.utils.data.DataLoader。该类主要对原始 DataLoader 做了批数据增强与控制循环迭代次数(recycling)相关的处理

源代码:

class OpenFoldDataLoader(torch.utils.data.DataLoader):
    def __init__(self, *args, config, stage="train", generator=None, **kwargs):
        super().__init__(*args, **kwargs)
        self.config = config
        self.stage = stage
        self.generator = generator
        self._prep_batch_properties_probs()

    def _prep_batch_properties_probs(self):
        keyed_probs = []
        stage_cfg = self.config[self.stage]

        max_iters = self.config.common.max_recycling_iters

        if stage_cfg.uniform_recycling:
            recycling_probs = [
                1. / (max_iters + 1) for _ in range(max_iters + 1)
            ]
        else:
            recycling_probs = [
                0. for _ in range(max_iters + 1)
            ]
            recycling_probs[-1] = 1.

        keyed_probs.append(
            ("no_recycling_iters", recycling_probs)
        )

        keys, probs = zip(*keyed_probs)
        max_len = max([len(p) for p in probs])
        padding = [[0.] * (max_len - len(p)) for p in probs]

        self.prop_keys = keys
        self.prop_probs_tensor = torch.tensor(
            [p + pad for p, pad in zip(probs, padding)],
            dtype=torch.float32,
        )

    def _add_batch_properties(self, batch):
        # TODO: gt_features might change
        gt_features = batch.pop('gt_features', None)
        samples = torch.multinomial(
            self.prop_probs_tensor,
            num_samples=1,  # 1 per row
            replacement=True,
            generator=self.generator
     

相关文章:

  • PostgreSQL 一文从安装到入门掌握基本应用开发能力!
  • 【C++】--- string的使用
  • go游戏后端开发24:写完赢三张游戏
  • C++中如何使用STL中的list定义一个双向链表,并且实现增、删、改、查操作
  • #SVA语法滴水穿石# (012)关于 first_match、throughout、within 的用法
  • 华为交换机配置指南:基础到高级命令详解
  • 51单片机使用定时器实现LCD1602的时间显示(STC89C52RC)
  • 迭代器运算详解(四十二)
  • OSI模型中协议数据单元(PDU)
  • 21 天 Python 计划:MySQL库相关操作
  • 深信服护网蓝初面试题
  • TYUTJava阶段测试
  • Spring 概念
  • 初探:简道云系统架构及原理
  • 定时器的实现方案:红黑树、最小堆与时间轮
  • 【蓝桥杯速成】日期问题(填空题) + 真题讲解 python
  • POSIX线程库
  • 程序化广告行业(65/89):AdX/SSP系统深度剖析与实战要点
  • 《操作系统真象还原》第五章(3)——载入内核
  • JAVA学习-练习试用Java实现“实现一个Hadoop MapReduce任务,对大数据集中的数值进行排序和筛选”
  • 门户网站建设自查整改/登封网站关键词优化软件
  • 在线销售型的网站/百度公司总部在哪里
  • 电商网站商品属性设计/哪个平台可以免费推广
  • 怎么做网站自动采集数据库/十大seo公司
  • 网站备案没公司/线上销售的方法和技巧
  • 江苏专业做网站的公司有哪些/微信推广引流加精准客户