# 实验三(PyTorch 版)代码说明 本仓库在 `lab03/` 下提供了实验三三个小实验的 PyTorch 实现与示例脚本,均配有详细中文注释,便于理解与复用。 ## 目录与文件 - `lab03/activation.py` - 常用激活函数(ReLU/LeakyReLU/Sigmoid/Tanh/Softmax)的 NumPy 与 PyTorch 版本实现。 - `lab03/iris_mlp_pytorch.py` - 使用 PyTorch 实现鸢尾花(Iris)数据集分类的 MLP。 - 优先从 `./step2/*.csv` 读取数据;若不存在尝试使用 sklearn 自带 Iris;再不行提示补齐数据。 - 训练后导出 `./step2/result.csv`(列名 `target`),并保存参数到 `./step2/iris_mlp.pt`。 - `lab03/mnist_cnn.py` - 示例 CNN(两层卷积+池化+全连接)训练 MNIST。 - 离线优先:尝试从 `./step3/mnist/` 读取;失败则生成随机数据演示完整训练/保存流程。 - 训练后保存模型参数至 `./step3/cnn.pkl`。 - `lab03/models.py` - 经典网络结构:`LeNet` 与 `AlexNet` 的 PyTorch 实现(仅定义结构,未包含训练循环)。 - `lab03/rnn_pytorch.py` - RNN/LSTM 单元与多层 RNN 的 PyTorch 版本演示(等价于原指导书的 TF 示例)。 ## 快速运行 1. 激活函数自测(可选) ```bash python3 lab03/activation.py ``` 2. Iris-MLP 训练与预测(建议准备 `./step2/*.csv`) ```bash python3 lab03/iris_mlp_pytorch.py # 生成 ./step2/result.csv 与 ./step2/iris_mlp.pt ``` 3. MNIST-CNN 训练与保存 ```bash # 若已有本地数据:将 MNIST 放到 ./step3/mnist/ 下(与 torchvision 默认结构一致) python3 lab03/mnist_cnn.py # 生成 ./step3/cnn.pkl ``` 4. LeNet/AlexNet 结构自测(仅前向测试维度) ```bash python3 lab03/models.py ``` 5. RNN/LSTM 演示 ```bash python3 lab03/rnn_pytorch.py ``` ## 说明 - 本实现默认不进行网络下载,确保在离线环境也能运行(MNIST 读取失败时会使用随机合成数据演示完整流程)。 - 若要在真实 MNIST 上训练,请自行放置本地数据到 `./step3/mnist/` 或修改脚本开启下载。 - Iris 任务要求原指引使用 sklearn;本仓库按你的要求改为 PyTorch 版,同时兼容从 CSV 或 sklearn 读取数据。