btvit-cli
基于 PyTorch 的三轴 ViT 医学影像二分类 CLI。
安装
pip install btvit-cli
vit --version
当前主线
项目现在只保留一条流程:
axis阶段分别训练x / y / z三个轴的单轴 ViTfusion阶段复用三轴 encoder,训练患者级fusion_nn头pred阶段支持两种患者级输出:weighted_votefusion_nnboth
每个患者的每张 (16, 368) 灰度图都作为独立样本共享患者标签,不再使用旧的中间特征缓存或跨轴组合穷举训练流程。
快速开始
1. 导出模板
vit get --path ./configs
导出内容:
model_config.yamldata_config.yamltraining_config.yamlexperiment_config.yamlmulti_axis_config.yamlmonitoring_config.yamlUSAGE.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.pthexperiments/<name>/axis-y/checkpoints/best_model.pthexperiments/<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 headboth:同时输出两条分支
预测数据支持:
- 根目录包含
data-x/、data-y/、data-z/ - 平铺 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.csvprediction_summary.jsonconfusion_matrix_weighted_vote.png,当有标签且启用weighted_voteconfusion_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|concatmonitoring.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
Metadata
Release files for btvit-cli 0.2.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| btvit_cli-0.2.8.tar.gz | 157.0 kB | Without provenance | Details for btvit_cli-0.2.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| btvit_cli-0.2.8-py3-none-any.whl | Python 3 | none | any | Details for btvit_cli-0.2.8-py3-none-any.whl |
Total release size: 294.7 kB
Release files / btvit_cli-0.2.8.tar.gz
| Download URL | btvit_cli-0.2.8.tar.gz |
|---|---|
| Size | 157.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
707da803b3ede3dfa4a6d4fb9e0b23cc2bdbc9f05befde9ba215ab35bc856c1a
|
|
BLAKE2b-256 checksum How to use checksums |
a51a6450cc40f9d17bacc4c608fe9e4c86f54408f1aa701e088d065cf31af0fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / btvit_cli-0.2.8-py3-none-any.whl
| Download URL | btvit_cli-0.2.8-py3-none-any.whl |
|---|---|
| Size | 137.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
204bd185ae5e7b4f3d606585fee7358e2d3261d2bb9b51f0c2c23943ed4fb65f
|
|
BLAKE2b-256 checksum How to use checksums |
1cf9a9534df7f204160d651cefbdf53162bb4fdab71cf661a66aab24da8f386e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Security for btvit-cli 0.2.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.