# `train_mlp_torch.py` 使用说明

## 这个文件做什么
- 用 PyTorch 训练一个基础 MLP 回归模型（单进程）。
- 使用一个 top200 因子文件作为输入特征。
- 目标固定为：`3M2Q1C_T3 + 3M2Q1C_T5 + 3M2Q1C_T40`。

## 为什么先用它
- 结构简单，适合先验证“能跑通、能收敛”。
- 后续 DDP 多卡优化前，先用单卡建立基线。

## 运行命令（小规模 1~2 天）
```bash
python -u train_mlp_torch.py \
  --feature-file /intern9/share/lixuelin/hs300_20260219_features_all_eps20_top200.txt \
  --max-days 2 \
  --epochs 3 \
  --batch-rows 100000 \
  --inner-batch 4096 \
  --use-amp
```

## 常用参数
- `--feature-file`：top200 因子文件路径（必填）。
- `--max-days`：用多少天数据；`-1` 表示全量。
- `--epochs`：训练轮数。
- `--batch-rows`：每次从 H5 读取的行数。
- `--inner-batch`：模型梯度更新的 mini-batch 大小。
- `--rdcc-*`：HDF5 读取缓存参数（提 IO 用）。

## 输出文件
- `output/torch_runs/<feature_stem>_model.pt`
- `output/torch_runs/<feature_stem>_metrics.json`

## 收敛怎么判断
- 观察 `val_rmse` 是否持续下降并趋于平稳。
- 若 `train_rmse` 降而 `val_rmse` 不降，可能过拟合。
