| # 示例和使用教程 | |
| 本目录包含了情绪与生理状态变化预测模型的完整示例和使用教程,帮助用户快速上手使用项目。 | |
| ## 目录结构 | |
| ``` | |
| 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链接] | |
| - 文档: [文档链接] | |
| --- | |
| **注意**: 这些教程和示例主要用于学习和演示目的。在实际生产环境中使用时,请根据具体需求进行调整和优化。 |