此文章为本人暑期学习计划,目标是在暑假学习吴恩达的机器学习,pytorch的使用, yolov8的使用,STM32的开发。在八月底九月初的总目标是在单片机上部署一个关于计算机视觉的轻量化AI。
时间段 |
学习任务 |
目标成果 |
6月17日 - 6月30日 |
吴恩达监督学习课程含线性回归、逻辑回归、神经网络基础 |
完成课程视频+习题,理解训练流程、损失函数、过拟合、正则化 |
7月1日 - 7月10日 |
PyTorch 框架入门学习张量、自动求导、模型定义、训练循环等 |
用 PyTorch 实现逻辑回归、简单神经网络 |
7月11日 - 7月20日 |
CNN 理论 + 实战项目学习卷积、池化、BatchNorm、分类模型 |
用 PyTorch 实现手写数字/MNIST/CIFAR10 分类 |
7月21日 - 8月5日 |
YOLOv8 实战训练使用官方Ultralytics库,训练自己数据集 |
会用YOLOv8训练模型,完成一次小型目标检测项目 |
8月6日 - 8月20日 |
轻量化模型 + 部署流程了解模型剪枝、量化、导出、部署 |
学会将模型导出为ONNX/TFLite,为嵌入式部署做准备 |
8月21日 - 8月31日 |
STM32 模型部署测试尝试用 STM32 或模拟平台运行轻量化模型 |
尝试部署 CV 模型到边缘设备,实现完整闭环 |
机器学习第一个阶段的详细规划如下
日期 |
学习内容 |
任务目标 |
6月17日(周一) |
机器学习概论 + 线性回归模型 |
明确监督学习与无监督学习的区别,理解代价函数 Cost Function |
6月18日(周二) |
梯度下降法(Gradient Descent) |
手推线性回归梯度下降公式,画出下降曲线 |
6月19日(周三) |
特征缩放 + 多变量线性回归 |
学会如何应对特征维度不同的情况,理解多元线性回归公式 |
6月20日(周四) |
✏️ 多变量线性回归编程作业 |
使用 Octave / Python / Jupyter 完成线性回归实验 |
6月21日(周五) |
过拟合与正则化(L2 正则) |
理解 bias-variance tradeoff,掌握正则项含义 |
6月22日(周六) |
逻辑回归(Logistic Regression) |
理解 sigmoid 函数、交叉熵损失 |
6月23日(周日) |
决策边界 + 多分类策略(One-vs-All) |
画出逻辑回归决策边界,理解多分类如何实现 |
6月24日(周一) |
逻辑回归实战作业 |
用 Python 实现并测试逻辑回归模型 |
6月25日(周二) |
神经网络原理(1)前向传播 |
理解激活函数、神经元、前向传播的结构 |
6月26日(周三) |
神经网络原理(2)反向传播 |
搞懂误差传播链条、链式法则 |
6月27日(周四) |
神经网络编程作业(MNIST) |
跑通吴恩达的手写数字识别练习,理解权重更新过程 |
6月28日(周五) |
模型评估指标:准确率、精确率、召回率、F1 分数 |
掌握评估模型好坏的四大指标,结合混淆矩阵理解 |
6月29日(周六) |
数据预处理 + 特征选择 |
了解如何清洗数据、如何选择/构造有效特征 |
6月30日(周日) |
总结回顾 + 练习巩固 + 项目立项预研 |
总结核心知识,准备开始用 PyTorch 实现逻辑回归 |
STM32 第一个阶段轻量计划任务清单如下
日期 |
STM32任务 |
学习目标 |
工具 |
6月17日(周一) |
环境搭建Keil5 + STM32CubeMX + 驱动包安装 |
能打开工程、编译、下载 |
STM32CubeMX、Keil、最小系统板 |
6月18日(周二) |
点亮第一个 LED 灯 |
学会使用 GPIO 输出 |
CubeMX 配置 GPIO,HAL 库 |
6月19日(周三) |
添加按键控制 |
实现按下按键灯亮 |
输入模式 + 轮询判断 |
6月20日(周四) |
呼吸灯效果实现 |
利用定时器 PWM 控制 LED |
TIM 定时器 + PWM 通道 |
6月21日(周五) |
学习中断 + 中断按键触发 |
用 EXTI 实现中断响应 |
NVIC 配置 + GPIO EXTI |
6月22日(周六) |
串口通信实现(UART) |
向串口助手发一句话 |
UART初始化 + HAL库 |
6月23日(周日) |
综合小实验:串口收数据控制LED |
发送 "on"/"off" 控制灯 |
字符串解析 + 逻辑控制 |
日期 |
STM32任务 |
学习目标 |
工具 |
6月24日(周一) |
定时器中断练习 |
通过定时器中断周期执行任务 |
TIM定时器 + NVIC 中断配置 |
6月25日(周二) |
外设模块认知(I2C/SPI/ADC) |
了解 STM32 能扩展的传感器模块 |
看资料 + 官方手册 |
6月26日(周三) |
CubeMX 管脚配置综合练习 |
能配置 GPIO/UART/TIM 多模块协同 |
CubeMX 工程拆分熟练 |
6月27日(周四) |
OLED 显示模块学习(选做) |
驱动 SSD1306 显示字符 |
I2C 显示 + 字模库 |
6月28日(周五) |
学习 STM32 如何接入摄像头(选读) |
了解 DMA、帧缓存思想 |
查阅 OV7670 接口资料 |
6月29日(周六) |
项目整合:用串口控制 LED 闪烁频率 |
串口 + 定时器结合实战 |
串口通信 + 软件逻辑 |
6月30日(周日) |
整体总结 + 项目归档 |
封装一个 STM32 Demo,准备开源 |
GitHub 上传 or 压缩存档 |