Datawhale AI 夏令营 Task02

先听了老师的直播课(内容大致和我暑期集训和新生讲的类似?果然是基础吗))然后仔细看了代码,发现基本结构也是相同的,先数据集——定义模型(也就是每一层)——训练——测试。不懂的部分也就是CV图像识别部分了,这部分还在自学看课程中。还有调节模型参数的方法也需要再学习。

一些CNN的笔记:

16. 卷积(本质还是线性计算,channel变,宽高可变可不)

用来检测,提取特征的,比如找图像中老鼠的屁股在哪,是一种运算方式(和下采样等运算类似功能)

其实就是做数学运算(多项式乘法),在一个n*n的卷积patch中,给每个像素分配不同权重(或者相同),遍历每一个像素块,形成模糊的效果(下面是高斯模糊,给中间值更大的权重,模拟更真实的失焦效果),最后的图像中每个像素块的值都是经过patch块卷积后的值

1.最终输出结果卷积核(kernel_size)都是n*n(长宽)

2.对于原图像,每个channel都要配一个卷积核

3.输出想要得到m个channel,就要m个卷积核(1个卷积核生成channel=1的输出)

16.1. Padding

Padding是什么?如果Output=5*5,Input至少要7*7才可从(0,0)元素就开始做卷积。Padding就是在5*5的基础上加一圈0变成7*7

16.2. Stride

stride:步长。卷积核本来是一步步移动,但stride=2就是两步两步移动了。降低Output的宽高(不降之前和Kernel一个大小)

16.3. 池化层(默认stride = 2,Channel不变,宽高变)

Eg:一个2*2的最大池化层,把Input分隔成4个2*2,每个里面找到最大值拼成2*2

经过最大池化层后宽和高各/2

maxpooling_layer = torch.nn.MaxPool2d(kernel_size = 2)

16.4. 代码+计算公式

# 4个维度确定input
input = torch.Tensor(input).view(batch的大小,channel数,宽度,高度)
# 4个维度确定kernel卷积核
kernel = torch.Tensor([1,2,3,4...9]).view(输出channel数,输入channel数,宽度,高度)

宽高的变化:宽-kernel_size+1

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值