SuperAPI AI 工具集

ai-for-science-deepfri

智能体与模型

查看项目

更新于 10-15 17:19

技能介绍

用途:将基于 TensorFlow/Keras 的蛋白质功能预测框架 DeepFRI 迁移到 PyTorch 并运行于昇腾 NPU,覆盖 TF 模型权重分析、PyTorch 重写、逐层权重映射、NPU 推理与精度验证。

主要能力:支持 DeepCNN(16 路并行 Conv1D→BatchNorm→ReLU→GlobalMaxPool→FuncPredictor)与 DeepFRI GCN(LSTM LM→Embedding→3×MultiGraphConv→SumPool→Dense→FuncPredictor)两条路径;支持 MF、BP、CC、EC 四种 Ontology;提供 torch_layers.py、torch_model.py、torch_predictor.py、convert_weights.py、predict_npu.py、verify_accuracy.py 等文件。

使用方式:前置条件为 Ascend910 系列(至少 1 卡)、CANN≥8.2(推荐 8.3.RC1)、Python 3.10、PyTorch 2.5.1、torch_npu 2.5.1。克隆 DeepFRI 仓库并下载 GPU 版预训练模型,创建 Conda 环境,安装依赖,source /home/Ascend/ascend-toolkit/set_env.sh 后验证 NPU 可用。用 h5py 读取 HDF5 权重结构,复制 scripts 目录文件到仓库对应位置,运行 python convert_weights.py 生成 trained_models/pytorch/*.pt,再用 python predict_npu.py --seq '...' -ont mf --verbose --device npu:0 或 --fasta_fn examples/pdb_chains.fasta 推理,最后运行 python verify_accuracy.py 验证精度。

关键转换规则:Dense kernel 转置 .T;Conv1D kernel 用 np.transpose(w,(2,1,0)) 且输入需 transpose;BatchNorm 的 gamma/beta/moving_mean/moving_var 直接复制,但必须设 eps=1e-3(TF 默认 1e-3,PyTorch 默认 1e-5,不匹配会导致输出全为 0);CuDNNLSTM 的 kernel/recurrent_kernel 转置,bias (8*H,) 拆分为 bias_ih 与 bias_hh。

适用场景:需要在 Ascend NPU 上运行 DeepFRI CNN 或 GCN 路径、进行 TF 到 PyTorch 模型迁移与精度对齐的蛋白质功能预测任务。

限制:GPU 版 GCN 模型内嵌 CuDNNLSTM,标准 LSTM 在深层 MultiGraphConv 中数值放大,如需 GCN 功能建议使用官网 CPU 版模型;CNN padding='same' 对偶数 kernel size 会有 PyTorch 警告但不影响精度;Ascend910 不支持 fp64,torch_npu 自动降级为 fp32。