飞百度架构师手把手带你零基础实践深度学习——21日学习打卡(第二周第二日)
首先声明,不详细讲解代码部分,主要是针对课程的理解及对作业的分析。(要是有代码相关问题可以私信)
课程链接:百度架构师手把手带你零基础实践深度学习
前文:飞桨PaddlePaddle-百度架构师手把手带你零基础实践深度学习——21日学习打卡(第二周第一日)
该课程分类专栏:深度学习课程——飞桨paddlepaddle
让我们回顾一下昨天学习的知识–卷积神经网络,昨天的重点在与详细讲解了卷积神经网络的卷积与池化的概念(还有如何进行计算)。
今天孙老师接着昨天讲的,详细说明了卷积神经网络的激活函数(ReLU激活函数和Sigmoid激活函数),批归一化处理(这里重点要知道批归一化处理的作用和思路,好处是使中间层的输出更稳定),Dropout处理(丢弃法,作用是抑制过拟合,飞桨支持两种接口:downgrade_in_infer和upscale_in_train)。
今天学习完这些概念,我们就具备了搭建卷积神经网络的基础。下一节,我们将应用这些基础模块,一起完成图像分类中的典型应用 — 医疗图像中的眼疾筛查任务的模型搭建。
1.反向传播后,梯度值减到接近于0的现象称作梯度消失(内容出处)
2.常用激活函数:relu, tanh, sigmoid, elu, relu6, pow, stanh, hard_sigmoid, swish, prelu, brelu, leaky_relu, soft_relu, thresholded_relu, maxout, logsigmoid, hard_shrink, softsign, softplus, tanh_shrink, softshrink, exp。(对应API文档)
4.Dropout是深度学习中一种常用的抑制过拟合的方法,其做法是在神经网络学习过程中,随机删除一部分神经元。训练时,随机选出一部分神经元,将其输出设置为0,这些神经元将不对外传递信号。(内容出处)
根据提示:先看输出一个像素点需要做多少次乘法和加法操作,然后再计算总共需要的操作次数。
假设卷积层的输入特征图大小为C_in x H x W, 卷积核大小为K_1 x K_2, padding = P_1 x P_2, stride = S_1 x S_2, filter 数目为C_out。
乘法操作计算量:
输出的特征图大小为C_out x H_out x W_out, 其中
H_out = [(H - K_1 + 2P_1) / S_1] + 1
W_out = [(W - K_2 + 2P_2) / S_2] + 1
为了得到输出的特征图的某一个位置的像素值,需要 C_in x K_1 x K_2次乘法操作,而特征图总共有C_out x H_out x W_out个像素,因此乘法总计算量为:
-----------------------------------------C_out x H_out x W_out x ( C_in x K_1 x K_2)
加法操作计算量: (默认bias=false)
为了得到输出的特征图的某一个位置的像素值,需要 (C_in x (K_1 x K_2 - 1)) + (C_in - 1) + 1 = C_in x K_1 x K_2 次加法操作,可以看成三部分,第一部分表示在某一个通道进行一个K_1 x K_2 大小的卷积操作需要 (K_1 x K_2 - 1)次加法,有C_in个通道,故 C_in x (K_1 x K_2 - 1)次加法,每个通道都卷积后,得到C_in个数,接下来需要有 C_in - 1次加法,最后加上bias又1次加法。 而特征图总共有C_out x H_out x W_out个像素,因此总加法计算量为
-----------------------------------------C_out x H_out x W_out x ( C_in x K_1 x K_2 - 1)
我们先算出输出特征图的一个通道卷积核计算需要进行 3x3次乘法、3x3-1 次加法。
计算出输出特征图大小为:[64, 224, 224 ]
乘法:27x10x64x224x224=86,704,128次
加法:26x10x64x224x224=834928640次
名称 | w形状 | wc参数的个数 | b的形状 | b参数个数 | 输出形状 |
---|---|---|---|---|---|
conv1 | [6,3,5,5] | 450 | [6] | 6 | [10,6,224,224] |
pool1 | 无 | 无 | 无 | 无 | [10,6,112,112] |
conv2 | [16,6,5,5] | 2400 | [16] | 16 | [10,16,112,112] |
pool2 | 无 | 无 | 无 | 无 | [10,16,56,56] |
fc1 | [64,50176] | 3211264 | [64] | 64 | [10,64] |
fc2 | [1,64] | 64 | [1] | 1 | [10,1] |
有什么不对或者可以改进的地方欢迎评论,互相交流