Update example and notes
This commit is contained in:
27
CONVERSATION.md
Normal file
27
CONVERSATION.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 对话记录
|
||||
|
||||
日期: 2025-02-14
|
||||
|
||||
用户要求我先阅读 `/home/anay/Dev/diffusion/mask-ddpm` 中的 MD 文档,并按照该文档说明来推进工作。同时,在该项目中新增一个 MD 文件用于记录我们的对话,方便后续 AI 了解上下文。
|
||||
|
||||
已阅读文档:
|
||||
- `/home/anay/Dev/diffusion/mask-ddpm/TODO-FOR-AI.md`
|
||||
|
||||
当前状态:
|
||||
- 完成了文档阅读。
|
||||
- 已创建本对话记录文件。
|
||||
|
||||
后续记录:
|
||||
- 已开始检查数据集。发现 HAI 的 CSV 文件是 Git LFS 指针文件,需要拉取真实内容;Modbus 数据集当前可见的 CSV 主要是攻击日志(字段如 Timestamp/TargetIP/Attack/TransactionID),其主体数据为 PCAP,需要额外特征提取。
|
||||
- 已阅读 `/home/anay/Dev/diffusion/dataset/hai/README.md`。关键信息:HAI CSV 是时间序列特征数据,第一列为时间戳,后续为 SCADA 点位;末尾为攻击标签列;HAI 22.04 起使用 Git LFS 下载实际 CSV 内容。
|
||||
- 用户尝试 `git lfs pull` 时遇到 LFS 配额超限(上游仓库配额不足),导致无法拉取 HAI 的真实 CSV 内容。
|
||||
- 用户选择从 Kaggle 下载 HAI 数据集并手动放入本地目录。
|
||||
- 在本地发现可读取的 HAI CSV 为 gzip 格式:`/home/anay/Dev/diffusion/dataset/hai/hai-20.07/*.csv.gz` 与 `/home/anay/Dev/diffusion/dataset/hai/hai-21.03/*.csv.gz`,列名包含大量 SCADA 点位与攻击标签列。
|
||||
- 基于 `hai-21.03/train1.csv.gz` 前 5000 行的启发式统计,初步划分了离散/连续特征(离散多为开关、状态与攻击标签;连续为传感器/过程变量)。
|
||||
- 在 `/home/anay/Dev/diffusion/mask-ddpm/example` 中创建了示例文件夹,包含 `analyze_hai21_03.py` 和结果输出(`results/feature_split.txt`、`results/summary.txt`)。
|
||||
- 已补充示例代码与文档:`feature_split.json`、`hybrid_diffusion.py`、`train_stub.py`、`model_design.md`,并更新了 `/home/anay/Dev/diffusion/mask-ddpm/example/README.md`。
|
||||
- 新增可运行脚本与数据准备:`data_utils.py`、`prepare_data.py`、`train.py`、`sample.py`,并修正 `train_stub.py` 以匹配新的离散掩码接口。
|
||||
- 已运行 `prepare_data.py` 生成 `results/cont_stats.json` 与 `results/disc_vocab.json`(采样 50k 行)。
|
||||
- 用户计划使用 conda 创建新环境并安装 GPU 版 PyTorch;建议环境名 `mask-ddpm`,Python 3.10,使用 cu121 安装源。
|
||||
- 已运行 `example/train.py`(CPU 回退,CUDA 初始化警告),生成 `example/results/model.pt`;已运行 `example/sample.py` 得到采样张量形状 `(2, 64, 53)` 和 `(2, 64, 30)`,并将加载方式改为 `weights_only=True`。
|
||||
- 已将 `train.py` 和 `sample.py` 改为自动选择 GPU(可用则使用,否则回退 CPU),并记录当前环境下 `/dev/nvidia*` 不存在导致 CUDA 不可用。
|
||||
Reference in New Issue
Block a user