msutils - MindSpore 开发必备工具箱
🔧 数据处理 - 30+ 数据增强方法,一键加载数据集
🚂 模型训练 - 20+ 学习率调度器,高级回调函数
📊 模型分析 - 复杂度分析、结构可视化、性能分析
🎯 评估工具 - 50+ 评估指标,可视化分析
🛡️ AI安全 - 对抗攻击与防御工具(结合你的专业方向!)
📦 部署工具 - 模型量化、格式转换、推理优化
或从源码安装:
git clone https://github.com/whitea133/msutils.git
cd msutils
pip install -e .
from msutils .data import RandomHorizontalFlip , RandomCrop , Compose
transform = Compose ([
RandomHorizontalFlip (prob = 0.5 ),
RandomCrop (size = 32 , padding = 4 ),
# ... 更多增强方法
])
from msutils .train import CosineAnnealingWarmRestarts
from msutils .callbacks import EarlyStopping
scheduler = CosineAnnealingWarmRestarts (T_0 = 10 , T_mult = 2 )
callback = EarlyStopping (patience = 5 )
from msutils .analysis import count_parameters , measure_flops
params = count_parameters (model )
flops = measure_flops (model , input_shape = (1 , 3 , 224 , 224 ))
模块
说明
augmentations
30+ 数据增强方法
loaders
常用数据集加载器
transforms
自定义数据转换
visualization
数据可视化
模块
说明
schedulers
20+ 学习率调度器
callbacks
自定义回调函数
checkpoints
检查点管理
early_stopping
早停机制
gradient_accumulation
梯度累积
msutils.analysis - 模型分析工具箱
模块
说明
complexity
模型复杂度分析
visualization
模型结构可视化
profiler
性能分析器
comparison
模型对比工具
模块
说明
metrics
高级评估指标
confusion_matrix
混淆矩阵可视化
roc_pr
ROC/PR 曲线绘制
cam
类激活热力图
msutils.security - AI安全工具箱 🔥
模块
说明
attacks.fgsm
FGSM 快速梯度符号攻击
attacks.pgd
PGD 投影梯度下降攻击
attacks.cw
C&W 攻击
defenses.adversarial_training
对抗训练
defenses.input_transformation
输入变换防御
evaluation
鲁棒性评估
模块
说明
quantization
模型量化 (INT8/FP16)
conversion
格式转换 (ONNX)
optimization
推理优化
lite_exporter
MindSpore Lite 导出
模块
说明
tokenizers
分词工具(Basic, WordPiece, BPE 等)
augmentations
文本增强(同义词替换、随机插入/删除/交换)
msutils.distributed - 分布式训练工具箱
模块
说明
ddp
分布式数据并行、all_reduce、barrier 等
指标
数值
代码行数
5500+
模块数
8
文件数
26+
文档页数
50+
示例代码
100+
from msutils .data import (
RandomHorizontalFlip ,
RandomVerticalFlip ,
RandomRotation ,
ColorJitter ,
RandomCrop ,
Normalize ,
Compose
)
# 构建数据增强 pipeline
train_transform = Compose ([
RandomHorizontalFlip (prob = 0.5 ),
RandomVerticalFlip (prob = 0.2 ),
RandomRotation (degrees = 15 ),
ColorJitter (brightness = 0.2 , contrast = 0.2 , saturation = 0.2 ),
RandomCrop (size = 32 , padding = 4 ),
Normalize (mean = [0.5 , 0.5 , 0.5 ], std = [0.5 , 0.5 , 0.5 ])
])
# 应用到数据集
dataset = train_transform (dataset )
from msutils .train import WarmUpCosineAnnealingLR
# 余弦退火 + Warmup
scheduler = WarmUpCosineAnnealingLR (
optimizer = optimizer ,
warmup_epochs = 5 ,
max_epochs = 100 ,
warmup_start_lr = 1e-6 ,
eta_min = 1e-6
)
# 训练循环中使用
for epoch in range (100 ):
scheduler .step ()
print (f"Epoch { epoch } : LR = { scheduler .get_last_lr ()[0 ]} " )
from msutils .security import FGSM , PGD , AdversarialTrainer
# 生成对抗样本
attack = FGSM (model , epsilon = 0.03 )
adversarial_images = attack (images , labels )
# 对抗训练
defender = AdversarialTrainer (model , optimizer )
defender .train (train_dataset , epochs = 10 )
# 评估鲁棒性
from msutils .security import evaluate_robustness
accuracy = evaluate_robustness (model , test_dataset , attack = 'pgd' )
完整文档:https://github.com/whitea133/msutils/wiki
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可。
whitea133