本项目用于完成计算机视觉前沿技术课程作业,提供完整的 Python 开发环境和计算机视觉相关库。
本仓库包含两次课程的完整实现:
/workspace ├── LinearNeuralNetwork/ # 作业一:线性神经网络 │ ├── train_numpy.py # NumPy 实现版本 │ ├── train_pytorch.py # PyTorch 实现版本 │ ├── visualization.py # 可视化工具 │ ├── binary_classification.txt # 二分类数据集 │ ├── loss_curve_*.png # 损失曲线图 │ ├── decision_boundary_*.png # 决策边界图 │ ├── 实验报告.pdf # 作业报告 │ └── 线性神经网络.pdf # 课程讲义 │ ├── MultilayerPerceptron/ # 作业二:多层感知机 │ ├── mlp_mnist_numpy.py # MLP MNIST分类完整版 │ ├── mlp_numpy.py # MLP MNIST分类基础版 │ ├── test_mnist.py # 测试脚本 │ ├── archive/ # MNIST 数据集 │ │ ├── train-images.idx3-ubyte │ │ ├── train-labels.idx1-ubyte │ │ ├── t10k-images.idx3-ubyte │ │ └── t10k-labels.idx1-ubyte │ ├── mlp_training_curves.png # 训练曲线 │ ├── mnist_samples.png # MNIST 样本示例 │ └── 多层感知机.pdf # 课程讲义 │ ├── file/ # 其他文档 │ └── 报告模板.pdf │ ├── Dockerfile # Docker 镜像构建文件 ├── settings.json # VS Code 配置 └── README.md # 项目说明文档(本文件)
实现线性分类器进行二分类任务,对比 NumPy 和 PyTorch 两种实现方式。
核心组件:
# 前向传播
probs = softmax(X @ W)
# 损失计算
loss = cross_entropy_loss(probs, y)
# 反向传播
gradients = compute_gradients(X, y, probs)
# 参数更新
W -= lr * gradients
nn.Linear(2, 2)nn.CrossEntropyLoss()optim.SGD()# NumPy 实现
cd LinearNeuralNetwork
python train_numpy.py
# PyTorch 实现
python train_pytorch.py
使用多层感知机(MLP)进行 MNIST 手写数字分类任务,实现深度学习基础架构。
.idx 格式二进制文件读取输入层: 784 (28×28 像素) ↓ 隐藏层: 256 (ReLU 激活) ↓ 输出层: 10 (Softmax)
网络参数:
前向传播:
# 输入层 → 隐藏层
z1 = X @ W1 + b1
a1 = relu(z1)
# 隐藏层 → 输出层
z2 = a1 @ W2 + b2
probs = softmax(z2)
反向传播:
# 输出层梯度
dz2 = (probs - y_onehot) / n
dW2 = a1.T @ dz2
db2 = np.sum(dz2, axis=0, keepdims=True)
# 隐藏层梯度
da1 = dz2 @ W2.T
dz1 = da1 * relu_derivative(z1)
dW1 = X.T @ dz1
db1 = np.sum(dz1, axis=0, keepdims=True)
# 完整版实现
cd MultilayerPerceptron
python mlp_mnist_numpy.py
# 基础版实现
python mlp_numpy.py
# 测试脚本
python test_mnist.py
docker.cnb.cool/orionseeker/frontiers-cv:latestjupyter notebook
虚拟环境位于 /opt/venv,Python 解释器路径:/opt/venv/bin/python
docker build -t docker.cnb.cool/orionseeker/frontiers-cv:latest .
docker push docker.cnb.cool/orionseeker/frontiers-cv:latest
uv pip install 安装额外依赖(比 pip 快 10-100 倍)archive/ 目录中