人工智能学习06--pytorch06--神经网络骨架nn.Module & scipy下载 & 现有网络模型的使用及修改(VGG16)

博客围绕神经网络展开,介绍了神经网络骨架nn.Module的继承与初始化,给出scipy的下载命令。还讲述现有网络模型VGG16的使用及修改,如利用其提取特征并改动结构,以适配CFAR10训练。最后提及模型保存的两种方法及加载方式。

神经网络骨架nn.Module

在这里插入图片描述

  • 括号里nn.Module表示继承Module类
  • init 初始化
    调用父类初始化函数
  • forward
    在这里插入图片描述

scipy下载

pip install scipy -i https://pypi.douban.com/simple/
在这里插入图片描述

现有网络模型的使用及修改(VGG16)

在这里插入图片描述
pretrained为True时需要下载,在imageNet上训练
(0.15之后改成weights了)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
利用现有网络,改动结构
很多框架都利用VGG16提取特征,然后再VGG16后面再加一些网络结构

当前目标:将VGG16改成10中,利用CFAR10训练。

可以加一个线性层,让in_feature=1000,out_feature=10
这种做法只适合前后部分的修改,想要跳层或者跨层连接的话,就只能自己写

在这里插入图片描述
或者加载classifier里面
在这里插入图片描述
或者直接在里面那个Linear里面改
在这里插入图片描述
在这里插入图片描述

模型的保存

  • 方法1

在这里插入图片描述
保存了网络模型中的网络结构和参数

  • 方法一·加载模型
    在这里插入图片描述

  • 方法二(官方推荐)
    输出字典格式
    在这里插入图片描述
    恢复成网络模型:新建网络模型结构
    在这里插入图片描述

你已经拥有 Wi-Pose 数据集,这是目前为数不多的 WiFi 信道状态信息(CSI)与人体姿态估计联合建模 的公开数据集。为了基于该数据集完成一个完整的 WiFi-based Pose Estimation 项目(如复现 CSI-Former 或构建自己的模型),以下是详细的流程说明与要求,涵盖从环境准备、数据理解、模型构建、训练到评估,并给出可扩展方向。 🧭 一、项目目标概述 利用 Wi-Pose 数据集,基于 WiFi 的 CSI 信号,实现对人体姿态的估计(Pose Estimation),最终输出 18 个关键骨骼点的二维坐标。 🧱 二、环境准备与依赖要求 1. 硬件要求(推荐配置) 表格 复制 项目 要求 GPU NVIDIA GPU(≥ 8GB 显存),用于训练 Transformer/Performer 模型 内存 ≥ 16GB RAM 存储 ≥ 50GB 可用空间(数据集 + 模型 + 日志) 2. 软件依赖 bash 复制 # 基础环境 Python >= 3.8 CUDA >= 11.1 PyTorch >= 1.7.0 torchvision numpy matplotlib scipy scikit-learn tqdm tensorboard # 可视化训练过程 # 可选加速 pip install performer-pytorch # 若使用 Performer 模块 📦 三、Wi-Pose 数据集结构说明 Wi-Pose 数据集包含: 表格 复制 内容 描述 CSI 数据 5GHz WiFi 信道状态信息(CSI),每个样本为 5 × 30 × 3 × 3 图像 对应时间戳的 RGB 图像(用于 Alphapose 标注) 姿态标签 18 个关键点 (x, y, confidence),共 18 × 3 = 54 维 动作类别 12 种动作(bend, run, wave, jump 等) 示例数据结构(建议格式): 复制 Wi-Pose/ ├── train/ │ ├── csi/ # ndarray: (N, 5, 30, 3, 3) │ ├── pose/ # ndarray: (N, 18, 3) [x, y, c] │ └── img/ # optional,用于可视化 ├── test/ │ └── (同上) ├── metadata.json # 描述采样频率、动作类别、志愿者信息等 🧠 四、模型构建与流程设计 1. 整体流程图(建议复现 CSI-Former) plaintext 复制 [CSI 数据] → [Encoder] → [Performer 特征提取器] → [Decoder] → [姿态估计矩阵] ↑ [Alphapose 标签监督] 2. 网络结构模块(参考 CSI-Former) a. Encoder(输入处理) 输入:CSI (5, 30, 3, 3) 展平 + 插值 → (150, 18, 18),适配后续 SAM(Skeleton Adjacency Matrix) b. 特征提取器(核心) 使用 12 层 Performer(或 Transformer) 多头注意力机制提取 CSI 中与姿态相关的子载波特征 输出:Ft (150, 18, 18) c. Decoder(输出姿态) 卷积层(3×3)+ ReLU + BatchNorm → (32, 18, 18) 卷积层(1×1)→ (2, 18, 18)(输出 x, y 坐标) 可选:输出 confidence(可训练) 3. 损失函数(L2 + Confidence 加权) Python 复制 L = Σ_i [c_i * ( (x_i - x̂_i)^2 + (y_i - ŷ_i)^2 ) ] c_i:Alphapose 提供的 confidence x_i, y_i:真值 x̂_i, ŷ_i:模型预测 🏋️ 五、训练流程详细步骤 1. 数据预处理 归一化 CSI 数据(按子载波或全局) 对齐图像与 CSI(5 CSI 帧 ←→ 1 图像帧) 构建 SAM(Skeleton Adjacency Matrix)作为监督目标 划分训练集 / 测试集(80% / 20%) 2. 模型初始化 初始化 Performer 参数(使用 Xavier 或 Kaiming) 加载 Alphapose 标签作为 ground truth(无需再运行 Alphapose) 3. 训练参数设置(参考) 表格 复制 参数 值 Epoch 50 Batch Size 8 Optimizer Adam Learning Rate 0.005(每 10 epoch 减半) Loss L2 weighted by confidence 4. 训练监控 使用 TensorBoard 记录 loss 和 PCK@5 每 epoch 保存模型权重 早停机制(若 PCK@5 连续 5 epoch 不升) 📊 六、评估指标 1. PCK(Percentage of Correct Keypoints) 归一化距离阈值(如 5%、10%、...、50%) 参考躯干直径(Torso Diameter)作为归一化基准 计算每个关键点的准确率,最后平均 Python 复制 PCK@5 = average( δ( ||pred_i - gt_i|| / torso_diameter < 0.05 ) ) 2. 可视化评估 将预测的骨骼点绘制在图像上 与 Alphapose 结果对比 检查不同动作、不同体型志愿者的泛化能力 🔁 七、可选扩展方向 表格 复制 方向 描述 多模态融合 将 CSI 与图像融合,提升精度 多人姿态估计 当前 CSI-Former 仅支持单人 实时推理优化 模型压缩 / 移动部署 跨环境泛化 在不同房间、不同设备上测试 自监督学习 不依赖 Alphapose,尝试对比学习 ✅ 八、最终交付物建议 表格 复制 项目 内容 模型权重 .pth 文件,支持加载推理 训练日志 TensorBoard 日志、loss 曲线、PCK 表格 可视化结果 图像 + 预测骨骼点 + GT 对比图 代码结构 train.py, model.py, dataset.py, eval.py, utils.py 技术文档 数据说明、模型结构、训练流程、评估结果 📌 九、注意事项与建议 CSI 数据质量敏感,建议检查是否存在异常值或同步误差 注意归一化方式,不同通道幅度差异大 避免过拟合:加入 dropout、正则项、数据增强(如 CSI 随机掩码) 可复现性:固定随机种子(torch.manual_seed(42)) 给出我复现之后的完整的可运行程序
最新发布
11-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值