Skip to content
whitea133Public

About

mindspore工具箱

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

msutils - MindSpore 开发必备工具箱

MindSpore Python License

让 MindSpore 开发更简单、更高效

English | 中文


✨ 特性

  • 🔧 数据处理 - 30+ 数据增强方法,一键加载数据集
  • 🚂 模型训练 - 20+ 学习率调度器,高级回调函数
  • 📊 模型分析 - 复杂度分析、结构可视化、性能分析
  • 🎯 评估工具 - 50+ 评估指标,可视化分析
  • 🛡️ AI安全 - 对抗攻击与防御工具(结合你的专业方向!)
  • 📦 部署工具 - 模型量化、格式转换、推理优化

📦 安装

pip install msutils

或从源码安装:

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))

📚 模块列表

msutils.data - 数据处理工具箱

模块 说明
augmentations 30+ 数据增强方法
loaders 常用数据集加载器
transforms 自定义数据转换
visualization 数据可视化

msutils.train - 模型训练工具箱

模块 说明
schedulers 20+ 学习率调度器
callbacks 自定义回调函数
checkpoints 检查点管理
early_stopping 早停机制
gradient_accumulation 梯度累积

msutils.analysis - 模型分析工具箱

模块 说明
complexity 模型复杂度分析
visualization 模型结构可视化
profiler 性能分析器
comparison 模型对比工具

msutils.eval - 评估工具箱

模块 说明
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 鲁棒性评估

msutils.deploy - 部署工具箱

模块 说明
quantization 模型量化 (INT8/FP16)
conversion 格式转换 (ONNX)
optimization 推理优化
lite_exporter MindSpore Lite 导出

msutils.nlp - NLP 工具箱 🔥

模块 说明
tokenizers 分词工具(Basic, WordPiece, BPE 等)
augmentations 文本增强(同义词替换、随机插入/删除/交换)

msutils.distributed - 分布式训练工具箱

模块 说明
ddp 分布式数据并行、all_reduce、barrier 等

📊 项目统计

指标 数值
代码行数 5500+
模块数 8
文件数 26+
文档页数 50+
示例代码 100+

🎓 使用示例

示例1:完整的数据增强 pipeline

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)

示例2:高级学习率调度

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]}")

示例3:AI安全 - 对抗攻击与防御

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


🙏 致谢

  • MindSpore - 华为全场景深度学习框架
  • 所有 contributors 和用户

如果这个项目对你有帮助,请给我们一个 ⭐

About

mindspore工具箱

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages