K-ON111111/genomics-tf-prediction
模型介绍
文件和版本
Pull Requests
讨论
分析

genomics-tf-prediction — 昇腾 NPU 适配模型

赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + 自建 PyTorch MLP(Keras 权重转换) 硬件: Ascend 910B 系列(实测 Ascend910B4) 标签: npu ascend pytorch transformers

📖 模型简介

属性值
原始模型Genereux-akotenou/genomics-tf-prediction
架构Keras Feedforward MLP(200→512→128→64→1,ReLU/Sigmoid)
任务类型基因转录因子(TF)结合位点预测(二分类)
输入格式200 维 DNA k-mer 特征向量
输出格式TF 结合概率(0-1)
参数量~120K(单个分类器)

原仓库包含多组 TF(AP2/ARF/ARR-B/B3 等)× k-mer 尺寸(k2-k5)的分类器, 本适配以 Binary-Classifier/AP2/FEEDFORWARD_k2.keras 为代表,inference.py 可指定任意分类器。

🔧 环境依赖

pip install -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple/

🚀 推理步骤

⚠️ 本仓库不包含模型权重(交付件仅 inference.py / readme.md / requirements.txt / assets/), 推理前必须先从原始模型仓单独下载权重(.keras 分类器文件)。

# 1. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/Genereux-akotenou/genomics-tf-prediction.git .
git lfs pull

# 2. 运行 NPU 推理(默认 AP2/FEEDFORWARD_k2 分类器 + 示例 k-mer 特征)
python3 inference.py --model_path . --device npu:0

# 指定其他分类器
python3 inference.py --model_path . --keras "Binary-Classifier/ARF/FEEDFORWARD_k3.keras" --device npu:0

🧪 测试用例

用例 1: 转录因子结合预测

python3 inference.py --model_path . --device npu:0

预期输出:

[Model Agent] ✅ NPU 设备就绪: Ascend910B4
[Model Agent] ✅ 模型加载完成 → npu:0 (Binary-Classifier/AP2/FEEDFORWARD_k2.keras)
[Model Agent] 📊 输入特征: 200 维
[Model Agent] ✅ 推理完成 → 结合概率 0.5000, 耗时 159 ms
[Model Agent] 📈 判定: 不结合
[Model Agent] ✅ 结果已保存 → inference_result.json

📁 目录结构

.
├── inference.py          # NPU 推理脚本
├── readme.md             # 本文件
├── requirements.txt      # 依赖清单
└── assets/               # 截图素材

📝 适配说明

本模型由 昇腾 Model Agent 自动完成 NPU 适配。 genomics-tf-prediction(Keras TF 结合分类器集合)迁移至昇腾 NPU:

  • inference.py 自动解压 .keras(ZIP)读取架构配置与权重,将 Sequential Dense 网络重建为等价的 PyTorch MLP 并加载权重(Keras [in,out] → PyTorch [out,in]);
  • 调用 torch_npu 完成设备初始化,sigmoid 输出 TF 结合概率;
  • 支持通过 --keras 指定仓库中任意 TF/k-mer 分类器。