Skip to main content

Typer CLI package for the Vit medical multi-axis Vision Transformer project.

Project description

btvit-cli

基于 PyTorch 的三轴 ViT 医学影像二分类 CLI。

安装

pip install btvit-cli
vit --version

当前主线

项目现在只保留一条流程:

  1. axis 阶段分别训练 x / y / z 三个轴的单轴 ViT
  2. fusion 阶段复用三轴 encoder,训练患者级 fusion_nn
  3. pred 阶段支持两种患者级输出:
    • weighted_vote
    • fusion_nn
    • both

每个患者的每张 (16, 368) 灰度图都作为独立样本共享患者标签,不再使用旧的中间特征缓存或跨轴组合穷举训练流程。

快速开始

1. 导出模板

vit get --path ./configs

导出内容:

  • model_config.yaml
  • data_config.yaml
  • training_config.yaml
  • experiment_config.yaml
  • multi_axis_config.yaml
  • monitoring_config.yaml
  • USAGE.md

2. 训练三轴 ViT

vit train --config configs/base --stage axis --axis x --init same --verbose
vit train --config configs/base --stage axis --axis y --init same --verbose
vit train --config configs/base --stage axis --axis z --init same --verbose

关键参数:

  • --stage axis
  • --axis x|y|z
  • --config <yaml_dir>
  • --init same|random
  • --init-seed <int>:控制模型初始化
  • --random-seed <int>:全局 seed 回退值
  • --train-split-seed <int>:控制患者划分
  • --data 可选。未提供时使用 multi_axis.axis_data_paths.<axis>
  • --label 可选。未提供时使用配置文件中的标签路径

3. 训练 fusion 头

vit train --config configs/base --stage fusion --fusion concat --init same --verbose

fusion 阶段会默认解析:

  • experiments/<name>/axis-x/checkpoints/best_model.pth
  • experiments/<name>/axis-y/checkpoints/best_model.pth
  • experiments/<name>/axis-z/checkpoints/best_model.pth

也可以显式覆盖:

  • --axis-checkpoint-x
  • --axis-checkpoint-y
  • --axis-checkpoint-z
  • --fusion sum|concat

4. 患者级预测

vit pred --mode weighted_vote --config configs/base --data dataset/predict_root
vit pred --mode fusion_nn --config configs/base --data dataset/predict_root --fusion concat
vit pred --mode both --config configs/base --data dataset/predict_root --label dataset/label.csv --fusion sum

预测模式:

  • weighted_vote:单图概率 -> 轴内患者均值 -> 三轴均值;均值 > 2/3 判阳性
  • fusion_nn:单图特征 -> 轴内患者均值 -> sum|concat -> fusion head
  • both:同时输出两条分支

预测数据支持:

  1. 根目录包含 data-x/data-y/data-z/
  2. 平铺 PNG 目录,文件名为 {patient_id}_{Z}_{Y}_{X}.png

输出结构

训练输出:

experiments/<experiment_name>/
  axis-x/
    checkpoints/
    results/
    logs/
  axis-y/
    checkpoints/
    results/
    logs/
  axis-z/
    checkpoints/
    results/
    logs/
  fusion/
    checkpoints/
    results/
    logs/
  testset/
    data-x/
    data-y/
    data-z/
    label.csv

预测输出:

  • predictions.csv
  • prediction_summary.json
  • confusion_matrix_weighted_vote.png,当有标签且启用 weighted_vote
  • confusion_matrix_fusion_nn.png,当有标签且启用 fusion_nn

配置要点

  • training.common:设备、worker、混合精度等公共训练参数
  • random_seed / init.init_mode / init.init_seed:训练可复现性设置
  • training.axis:单轴 ViT 训练参数
  • training.fusion:fusion 头训练参数
  • train_split.train_split_random_seed:患者划分随机种子
  • train_split.csv_split_random_seed:CSV 重划分随机种子
  • multi_axis.patient_pooling:患者内均值聚合规则
  • multi_axis.weighted_vote:固定三轴投票开关
  • multi_axis.fusion_head:患者级 fusion 头配置,包含 fusion: sum|concat
  • monitoring.axis / monitoring.fusion / monitoring.prediction:分阶段监控与 fusion_nn 预测阈值

训练可复现性

  • --init same 现在是默认模式。它会固定模型初始化,并为训练 DataLoader 使用固定随机生成器,从而让相同配置更容易复现。
  • --init random 保持随机初始化,适合对比不同初始化带来的结果波动。
  • --init-seed 只控制模型初始化;--train-split-seed 只控制患者划分;--random-seed 作为这些 seed 的全局回退值。
  • --init same 会关闭 torch.backends.cudnn.benchmark,因此训练可能比随机模式略慢。

开发

conda activate Vit
pip install -e .
vit --help

构建:

conda run -n Vit python -m build

许可证

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

btvit_cli-0.2.7.tar.gz (156.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

btvit_cli-0.2.7-py3-none-any.whl (137.4 kB view details)

Uploaded Python 3

File details

Details for the file btvit_cli-0.2.7.tar.gz.

File metadata

  • Download URL: btvit_cli-0.2.7.tar.gz
  • Upload date:
  • Size: 156.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for btvit_cli-0.2.7.tar.gz
Algorithm Hash digest
SHA256 93b6215a3634e708ccd635ca3a7c82c97c29352a851484cfb07731e4c84dd078
MD5 4ea167959f1781c03852a9e7fda50ee7
BLAKE2b-256 8cd88d4168ba57ea8a00b56fef9a96d415752a59389ef7bcba9e8cfb4e2e49d2

See more details on using hashes here.

File details

Details for the file btvit_cli-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: btvit_cli-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 137.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for btvit_cli-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5490386138c9ed51e45fa341f6c8fcc7ace444d5914225d197d428c0b7d459d5
MD5 c4d698d0b56eaaf2be9abae2d62019a5
BLAKE2b-256 cdf63efaa5abfe15ce8fb9dffb376c19ece540b314cd066a33f78b49fa8c0709

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page