一个综合性的Python机器学习练习项目,涵盖了从基础Python语法到高级深度学习应用的多个方面。
本项目是一个Python学习和实践项目,主要用于:
- 学习Python编程基础(类、对象、实例字段与类字段等)
- 实践PyTorch深度学习框架
- 探索Hugging Face transformers库的各种应用
- 实现完整的机器学习工作流程(数据预处理、模型训练、评估、推理)
AI-PythonPractise/
├── 根目录文件
│ ├── data_preprocessing.py # 图像数据预处理(使用PyTorch和torchvision)
│ ├── FaceRecognition.py # 人脸识别模型加载(使用MobileNetV2)
│ ├── FineTuning.py # 模型微调训练
│ ├── Inference.py # 模型推理
│ ├── Save.py # 模型保存
│ ├── Verify.py # 模型验证和准确率计算
│ ├── Test_instance_class_fields.py # Python类字段测试(实例字段 vs 类字段)
│ ├── LICENSE # MIT许可证
│ ├── README.md # 项目说明文档
│ └── .gitignore # Git忽略配置
├── main/ # 主模块目录
│ ├── data_preprocessing.py # 数据预处理
│ ├── Datasets.py # 数据集下载(使用kagglehub下载LFW数据集)
│ ├── inference.py # 推理
│ ├── model_evaluation.py # 模型评估
│ ├── model_training.py # 模型训练
│ └── save_model.py # 模型保存
└── testHuggingFace/ # Hugging Face测试目录
├── Question-Answering.py # 问答系统测试
├── sentiment-analysis.py # 情感分析测试
├── TextGeneration.py # 文本生成测试(使用GPT-2)
├── Translate.py # 机器翻译测试(英译中)
└── Tokenizers/
└── UsingModelsAndTokenizersInstandPipeline.py # Tokenizer和模型使用
- PyTorch: 用于模型训练、微调和推理
- torchvision: 用于图像数据处理和增强
- transformers: 用于各种NLP任务(文本生成、问答、情感分析、翻译)
- 预训练模型:
- GPT-2 (文本生成)
- DistilBERT (情感分析)
- MobileNetV2 (图像分类)
- opus-mt-en-zh (英译中翻译)
- PIL/Pillow: 图像处理
- datasets: 数据集加载
- kagglehub: 数据集下载(LFW人脸数据集)
- Python 3.x: 主要编程语言
- Git: 版本控制
- Python 3.7+
- pip 或 conda
- 克隆项目:
git clone https://github.com/TJYOYO/PythonPractise.git
cd PythonPractise- 创建虚拟环境(推荐):
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate- 安装依赖:
pip install torch torchvision transformers datasets pillow kagglehub位于项目根目录,展示了完整的端到端机器学习工作流程:
- 数据预处理 (
data_preprocessing.py): 加载和预处理图像数据 - 模型加载 (
FaceRecognition.py): 加载预训练的MobileNetV2模型 - 微调训练 (
FineTuning.py): 在自定义数据集上微调模型 - 模型验证 (
Verify.py): 计算模型在测试集上的准确率 - 模型保存 (
Save.py): 保存微调后的模型 - 模型推理 (
Inference.py): 使用训练好的模型进行预测
位于testHuggingFace/目录,展示了transformers库的各种应用:
- 文本生成 (
TextGeneration.py): 使用GPT-2生成文本 - 问答系统 (
Question-Answering.py): 基于上下文的问答 - 情感分析 (
sentiment-analysis.py): 分析文本情感(正面/负面) - 机器翻译 (
Translate.py): 英译中翻译 - Tokenizer使用 (
Tokenizers/): 手动使用tokenizer和模型
- 类字段测试 (
Test_instance_class_fields.py): 演示Python中实例字段和类字段的区别
位于main/目录,包含更模块化的实现:
- 数据集下载和管理
- 模型训练和评估的分离
- 可重用的组件
- 准备图像数据集,按类别组织在文件夹中
- 更新
data_preprocessing.py中的路径:
train_dataset = datasets.ImageFolder(root='path_to_train_data', transform=transform)
test_dataset = datasets.ImageFolder(root='path_to_test_data', transform=transform)- 按顺序运行脚本:
python data_preprocessing.py
python FaceRecognition.py
python FineTuning.py
python Verify.py
python Save.py
python Inference.py# 文本生成
python testHuggingFace/TextGeneration.py
# 情感分析
python testHuggingFace/sentiment-analysis.py
# 问答系统
python testHuggingFace/Question-Answering.py
# 机器翻译
python testHuggingFace/Translate.pypython Test_instance_class_fields.py- 数据路径: 部分脚本中的路径是占位符,需要根据实际情况修改
- 硬件要求: 深度学习模型训练需要GPU支持以获得更好的性能
- 依赖版本: 建议使用较新版本的PyTorch和transformers库
- 数据集: LFW数据集下载需要kaggle账号和API token
本项目基于MIT许可证开源 - 查看LICENSE文件了解详情。
欢迎提交Issue和Pull Request来改进这个项目。
- TJYOYO
- 感谢Hugging Face团队提供的优秀transformers库
- 感谢PyTorch社区
- 感谢所有开源项目的贡献者
本项目主要用于学习和研究目的,适合作为机器学习入门和实践的参考项目。