Chordia / examples /README.md
Corolin's picture
first commit
0a6452f
# 示例和使用教程
本目录包含了情绪与生理状态变化预测模型的完整示例和使用教程,帮助用户快速上手使用项目。
## 目录结构
```
examples/
├── README.md # 本文件 - 示例目录说明
├── sample_data.json # JSON格式示例数据
├── sample_data.csv # CSV格式示例数据
├── quick_start.py # 快速开始教程
├── training_tutorial.py # 详细训练教程
├── inference_tutorial.py # 推理教程
├── data/ # 教程生成的数据目录
├── models/ # 教程生成的模型目录
├── training_outputs/ # 训练教程输出目录
└── inference_outputs/ # 推理教程输出目录
```
## 文件说明
### 示例数据文件
#### `sample_data.json`
- **格式**: JSON格式,包含10个样本的完整数据
- **内容**: 每个样本包含7维输入特征和5维输出标签
- **用途**: 用于快速测试和演示模型功能
#### `sample_data.csv`
- **格式**: CSV格式,包含20个样本的完整数据
- **内容**: 包含表头,便于批量处理和数据分析
- **用途**: 用于批量测试和数据分析
### 教程脚本
#### `quick_start.py` - 快速开始教程
**目的**: 为新用户提供最简单的上手体验
**功能**:
- 生成合成训练数据
- 训练基础模型
- 进行推理预测
- 解释预测结果
**运行方式**:
```bash
cd examples
python quick_start.py
```
**输出**:
- `examples/data/training_data.csv` - 训练数据
- `examples/models/quick_start_model.pth` - 训练好的模型
- `examples/models/quick_start_preprocessor.pkl` - 数据预处理器
#### `training_tutorial.py` - 详细训练教程
**目的**: 深入演示模型训练的完整流程
**功能**:
- 数据准备和探索性分析
- 数据预处理和特征工程
- 模型配置和架构选择
- 训练过程监控和可视化
- 模型评估和验证
- 超参数调优示例
**运行方式**:
```bash
cd examples
python training_tutorial.py
```
**输出**:
- `examples/training_outputs/` - 训练过程的所有输出文件
- `train_data.csv`, `val_data.csv`, `test_data.csv` - 数据分割
- `feature_distribution.png` - 特征分布图
- `label_distribution.png` - 标签分布图
- `correlation_heatmap.png` - 相关性热力图
- `training_curves.png` - 训练曲线
- `prediction_visualization.png` - 预测结果可视化
- `preprocessor.pkl` - 数据预处理器
- `best_model.pth` - 最佳训练模型
- `training_history.json` - 训练历史记录
- `evaluation_results.json` - 评估结果
- `hyperparameter_tuning.json` - 超参数调优结果
#### `inference_tutorial.py` - 推理教程
**目的**: 全面演示模型推理的各种方法和技巧
**功能**:
- 单样本推理
- 批量推理
- 不同输入格式处理(列表、NumPy数组、字典、JSON、CSV)
- 结果解释和可视化
- 性能优化和基准测试
- 实际应用场景演示
**运行方式**:
```bash
cd examples
python inference_tutorial.py
```
**输出**:
- `examples/inference_outputs/` - 推理过程的所有输出文件
- `single_inference_results.json` - 单样本推理结果
- `batch_inference_results.json` - 批量推理结果
- `prediction_distributions.png` - 预测分布对比图
- `test_input.json`, `test_input.csv` - 测试输入文件
- `result_interpretations.json` - 结果解释
- `performance_optimization.json` - 性能优化结果
- `real_world_scenarios.json` - 实际应用场景结果
## 数据格式说明
### 输入特征(7维)
1. `user_pleasure` (float, [-1, 1]) - 用户快乐度
2. `user_arousal` (float, [-1, 1]) - 用户激活度
3. `user_dominance` (float, [-1, 1]) - 用户支配度
4. `vitality` (float, [0, 100]) - 活力水平
5. `current_pleasure` (float, [-1, 1]) - 当前快乐度
6. `current_arousal` (float, [-1, 1]) - 当前激活度
7. `current_dominance` (float, [-1, 1]) - 当前支配度
### 输出标签(5维)
1. `delta_pleasure` (float, [-0.5, 0.5]) - 快乐度变化量
2. `delta_arousal` (float, [-0.5, 0.5]) - 激活度变化量
3. `delta_dominance` (float, [-0.5, 0.5]) - 支配度变化量
4. `delta_pressure` (float, [-0.3, 0.3]) - 压力变化量
5. `confidence` (float, [0, 1]) - 预测置信度
## 使用建议
### 初学者
1. 从 `quick_start.py` 开始,了解基本流程
2. 查看 `sample_data.json` 了解数据格式
3. 运行 `inference_tutorial.py` 学习推理方法
### 进阶用户
1. 运行 `training_tutorial.py` 学习完整训练流程
2. 修改配置文件进行自定义训练
3. 使用 `inference_tutorial.py` 中的性能优化技巧
### 开发者
1. 参考教程代码集成到自己的项目
2. 使用提供的工具函数进行数据处理
3. 根据实际需求调整模型架构
## 常见问题
### Q: 如何使用自己的数据?
A: 参考 `training_tutorial.py` 中的数据预处理部分,确保数据格式符合要求。
### Q: 如何调整模型架构?
A: 修改 `configs/model_config.yaml` 中的网络架构参数,或直接在代码中修改 `PADPredictor` 的初始化参数。
### Q: 如何提高预测精度?
A: 参考 `training_tutorial.py` 中的超参数调优部分,尝试不同的学习率、批次大小等参数。
### Q: 如何进行批量推理?
A: 使用 `inference_tutorial.py` 中演示的 `predict_batch` 方法。
### Q: 如何解释预测结果?
A: 参考 `inference_tutorial.py` 中的结果解释函数,了解各项指标的含义。
## 依赖要求
运行教程脚本需要安装以下依赖:
- Python 3.8+
- PyTorch
- NumPy
- Pandas
- Matplotlib
- Seaborn
- scikit-learn
- loguru
- PyYAML
安装命令:
```bash
pip install torch numpy pandas matplotlib seaborn scikit-learn loguru pyyaml
```
## 联系方式
如有问题或建议,请通过以下方式联系:
- 项目仓库: [GitHub仓库链接]
- 问题反馈: [Issues链接]
- 文档: [文档链接]
---
**注意**: 这些教程和示例主要用于学习和演示目的。在实际生产环境中使用时,请根据具体需求进行调整和优化。