尧图精选

如何用 Cell-DINO 在 HPAone 上运行蛋白质定位线性评估并得到 mean_per_class_multilabel_f1?

🕒 发布时间:2026/9/15 16:26:39 📁 来源:尧图网络
如何用 Cell-DINO 在 HPAone 上运行蛋白质定位线性评估并得到 mean_per_class_multilabel_f1【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2如果你已经拿到一个 Cell-DINOViT-L/16模型权重想验证它在 HPAoneHPA 单细胞数据集上的蛋白质定位protein localization能力本文给出仓库 docs/README_CELL_DINO.md 中的完整操作路径冻结骨干网络、只训练线性分类头并用mean_per_class_multilabel_f1作为验证指标。评估在单个节点上运行跑完后你会在输出目录得到 best classifier 名称和对应的 F1 数值。准备条件1. 环境按 docs/README_CELL_DINO.md 的安装说明构建 Python 3.10 环境并安装依赖conda create -n py310 python3.10 conda activate py310 pip install -r requirements.txt pip install -U scikit-learn运行评估命令时必须让dinov2包位于 Python 模块搜索路径中即命令前加PYTHONPATH.评估脚本实际写作PYTHONPATH.:dinov2/data因为需要直接引用dinov2/data下的数据集模块。2. 数据HPA-FoV 和 HPA single cellHPAone数据集的下载入口见 docs/README_CELL_DINO.md 的 “Data preparation” 一节文档给出了 EBI BioStudies 数据页链接请自行查阅原文获取。HPAone 的数据加载器dinov2/data/datasets/cell_dino/hpaone.pydataloader : HPAone.py要求数据集根目录下有以下 5 个文件fixed_size_masked_single_cells_HPAvaried_size_masked_single_cells_HPAvaried_size_masked_single_cells_pretrain_20240507.csvfixed_size_masked_single_cells_evaluation_20240507.csvfixed_size_masked_single_cells_pretrain_20240507.csv其中训练 splitTRAIN读取fixed_size_masked_single_cells_pretrain_20240507.csv验证 splitVAL读取fixed_size_masked_single_cells_evaluation_20240507.csv图像统一从fixed_size_masked_single_cells_HPA目录加载。蛋白质定位任务使用多标签multilabel标注hpaone.py中定义的PROTEIN_LOCALIZATION共 19 个类别如nucleoplasm、mitochondria、nuclear membrane等每张图对应一个 19 维 0/1 标签向量。3. 模型权重--pretrained-weights需要一个检查点文件文档给出两种来源自训练产物用 dinov2/run/train/train.py 在 HPAone 上训练时训练代码每隔 9000 次迭代把 teacher 权重保存到eval文件夹。文档示例用的是训练输出目录/eval/training_44999/teacher_checkpoint.pth迭代号随你的训练进度而定。官方发布的预训练权重README 指出下载说明在根目录 README.md 末尾 “DINO for Biology” 一节HPA single cell 模型对应 hubconf 入口cell_dino_hpa_vitl16见 dinov2/hub/cell_dino/backbones.py。执行线性评估蛋白质定位任务的评估命令来自 docs/README_CELL_DINO.mdPYTHONPATH.:dinov2/data python dinov2/run/eval/cell_dino/linear.py \ --config-file dinov2/configs/eval/cell_dino/vitl16_pretrain.yaml \ --pretrained-weights CHECKPOINT/PATH \ --output-dir PATH/TO/OUTPUT/DIR \ --train-dataset HPAone:splitTRAIN:modePROTEIN_LOCALIZATION:rootPATH/TO/DATASET \ --val-dataset HPAone:splitVAL:modePROTEIN_LOCALIZATION:rootPATH/TO/DATASET \ --val-metric-type mean_per_class_multilabel_f1 \ --loss-type binary_cross_entropy \ --avgpool占位符替换说明均沿用文档中的写法CHECKPOINT/PATH上面第 3 小节准备的一个检查点路径训练产物示例为PATH/TO/OUTPUT/DIR/eval/training_44999/teacher_checkpoint.pthPATH/TO/DATASETHPAone 数据集根目录含上述 5 个文件PATH/TO/OUTPUT/DIR评估结果与检查点输出目录命令执行时会自动创建。各参数的作用--config-file指定 dinov2/configs/eval/cell_dino/vitl16_pretrain.yaml内容为 student/teacher 均为vit_large、patch_size: 16、in_chans: 4HPA 图像为 4 通道评估脚本据此构建并加载模型--train-dataset/--val-dataset数据集名:split...:mode...:root...格式modePROTEIN_LOCALIZATION决定加载 19 维多标签标注换到 HPAFoV 时按文档说明把HPAone替换为HPAFoV并加载对应模型权重--val-metric-type mean_per_class_multilabel_f1验证指标在 dinov2/eval/metrics.py 中映射为MultilabelF1Score(num_labels19, averagemacro)即每个定位类别先算 F1 再取宏平均--loss-type binary_cross_entropy线性头损失用nn.BCEWithLogitsLoss()多标签必需细胞系分类任务则用默认 cross entropy--avgpool在线性输入中额外拼接 patch tokens 的平均池化结果除 CLS token 外。脚本内部行为见 dinov2/eval/cell_dino/linear.py骨干网络冻结只训练LinearClassifier线性头优化器为 AdamW默认调度器 CosineAnnealingLR学习率在 16 个候选值上做网格搜索weight decay 在[0.0, 0.0001, 1.0e-05]中搜索每个 (lr, wd) 组合各训一个线性头默认epochs30、epoch_length145、batch_size64。每eval_period_iterations次迭代在验证集上评一次F1 最高的分类头会被记为 best classifier 并保存。一个需要留意的文档差异README 中“评估官方预训练权重”的蛋白质定位命令写的是python dinov2/run/eval/linear_celldino.py但该路径在当前仓库中不存在仓库内实际存在的是dinov2/run/eval/cell_dino/linear.pyREADME 中训练 checkpoint 评估与细胞系分类命令均用它。本文使用存在的路径。结果验证评估过程与结果落在两处日志训练中周期性打印running validation !、每个候选头的指标行、best classifier: {name: ..., accuracy: ...}结束前打印Test Results Dict ...其中 best classifier 对应的数值即最终成绩代码中该主指标为 F1 × 100。输出文件PATH/TO/OUTPUT/DIR/results_eval_linear.json主进程每次评估都会向其中追加iter: 迭代号和 best_classifier 的 JSON 记录可直接查看最后一轮结果。判断标准参考文档给出的数值按 README 的训练配方4 个 A100-80GB 节点、约 2 天在 HPAone 上训练的模型线性评估的蛋白质定位 F1 应达到 78.5。不同权重和超参组合下结果会有出入以你自己输出目录中的results_eval_linear.json为准文档未承诺其他固定数值。边界与说明该评估脚本文档定位为“single node”运行命令通过 submitit 启动dinov2/run/eval/cell_dino/linear.py 只是 Evaluator 的 submitit launcher。仓库代码与模型权重仅供研究使用不用于临床诊断等医疗场景docs/README_CELL_DINO.md 有明确声明。细胞系分类CELL_TYPE任务与本场景是独立任务需要modeCELL_TYPE与--val-metric-type mean_per_class_multiclass_f1且不需要--loss-type binary_cross_entropy命令见 README 对应小节。【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →