CNN中2d卷积算子的分析与实验

CNN中2d卷积算子的分析与实验

为了和之前的GNN中图卷积算子的实验相对应,本次实验主要对CNN中的2d卷积进行了分析。

在CNN中,我们通过卷积的计算操作来提取图像局部的特征,每一层都会计算出一些局部特征,这些局部特征再汇总到下一层,这样一层一层的传递下去,特征由小变大,最后在通过这些局部的特征对图片进行处理,这样大大提高了计算效率,也提高了准确度。

2d卷积作为一种基本的算子,广泛应用于很多模型当中,例如LeNet、AlexNet、GoogleNet、ResNet。和GNN不同,各种不同CNN模型的卷积操作都是一致的,即(在pytorch中)都是用函数torch.nn.Conv2d为基础来构建整个模型(只不过卷积的参数略有区别),具体模型结构可以。因此,使用何种模型进行实验反而不那么重要了。

经典的模型结构可以参考:https://github.com/zergtant/pytorch-handbook/blob/master/chapter2/2.4-cnn.ipynb

下面的实验是在手写数字识别实验的基础上进行的——用LeNet-5来训练MNIST数据集。

在这里插入图片描述

torch.nn.Conv2d的研究与分析

torch.nn.Conv2d的源代码在torch/nn/modules/conv.py中实现,而通过查看源代码又可以将核心的2d卷积操作追溯到F.conv2d()函数,但找不到这个对应的 python 代码,只是在文件torch/_C/_VariableFunctions.pyi中进行了函数的声明,因为它来自于通过C++编写的THNN库(为了加速)。

追溯的路径和思路如下:

torch.nn.Conv2d-->torch/nn/modules/conv.py-->F.conv2d()-->torch/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值