用 ChatGPT 学卷积神经网络:用 NumPy 核对卷积结果和输出尺寸

用固定小矩阵向 ChatGPT 提出学习问题,在 NumPy 中核对互相关数值和两个步长的输出尺寸。

用 ChatGPT 学卷积神经网络时,先拿小矩阵核对一次运算,再讨论复杂模型。这里限定单通道、无 padding、无 dilation、无 bias,用 NumPy 对照输出尺寸和每格数值,避免只背术语却不知道卷积核怎么作用。

把学习问题限定到可手算的例子

将下面提示词发给 ChatGPT,再用自己的手算与本地结果核对回答。下面的代码是独立编写的验证示例,本文没有调用 ChatGPT 账户获得真实回复。

用 ChatGPT 学卷积神经网络:用 NumPy 核对卷积结果和输出尺寸

请帮助我学习CNN中的二维卷积层。输入是按行填入1到16的4×4矩阵,
卷积核为[[1,0],[0,-1]],单通道,无padding、dilation=1、bias=0。
按PyTorch Conv2d的互相关约定,不翻转卷积核。
先算stride=1的输出尺寸和左上角数值,再给出完整输出;
随后算stride=2。请说明这次运算与训练一个完整CNN有什么关系。

手算一格,再写 NumPy 验证

左上角取输入 [[1,2],[5,6]],逐元素乘核后求和,得到 1−6=−5。无补边且 dilation=1 时,每个轴的输出尺寸为 floor((输入尺寸−核尺寸)/步长)+1,所以 stride=1 得到 3×3,stride=2 得到 2×2。

python -m pip install numpy

保存为 verify_convolution.py,运行 python verify_convolution.py。本地已在 Python 3.11、NumPy 2.4.6 上运行该矩阵示例;没有训练神经网络,也没有实测 ChatGPT 的回答。

import numpy as np

def conv_valid(image, kernel, stride=1):
    height, width = image.shape
    kh, kw = kernel.shape
    out_h = (height-kh)//stride + 1
    out_w = (width-kw)//stride + 1
    result = np.zeros((out_h, out_w), dtype=float)
    for y in range(out_h):
        for x in range(out_w):
            patch = image[y*stride:y*stride+kh, x*stride:x*stride+kw]
            result[y, x] = np.sum(patch * kernel)
    return result

image = np.arange(1, 17, dtype=float).reshape(4, 4)
kernel = np.array([[1., 0.], [0., -1.]])
one = conv_valid(image, kernel, stride=1)
two = conv_valid(image, kernel, stride=2)
assert one.shape == (3, 3) and np.all(one == -5)
assert two.shape == (2, 2) and np.all(two == -5)
print("input", image, "stride1", one, "stride2", two, sep="\n")

哪里算错,就检查哪项约定

本例两个输出矩阵每格均为 −5。若你的 ChatGPT 回答或手算不同,先检查是否翻转核、是否误加 padding、步长是否对应每个滑动窗口;不要只让模型把错误数值重新解释得更顺。

PyTorch Conv2d 文档使用互相关约定。数学课程中严格卷积的核翻转约定可能不同,比较教材或代码时先声明约定,再比较数值。

从一次计算到 CNN 还缺什么

这里的卷积核固定为演示数值。真实 CNN 会学习权重,并通常包含多个输入输出通道、非线性激活和多个层;只做一次固定核计算不能评价训练效果。

下一步先把输入换成另一张 4×4 矩阵,自己核对左上角,再考虑增加 padding 或多个通道。每增加一项先写出输出形状,保持问题能用数值验证。

资料与适用范围

本文依据 2026 年 10 月 1 日读取的项目资料编写。安装后请记录实际依赖版本;版本升级时先用小样本核对接口和输出。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30848.html

赞 (0)
AI小管家的头像AI小管家
分类模型比简单基线好吗?用 DummyClassifier 对照多数类预测
上一篇 2天前
Claude Code 怎么安装?Windows、macOS 与 Linux 安装后验证教程
下一篇 2天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部