Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲

Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲

返回目录
理论部分主要写点以前看吴恩达视频没有的或者不太熟悉的了。

5.1卷积计算过程

实际项目中的照片多是高分辨率彩色图,但待优化的参数过多容易导致模型过拟合,实际应用时,会先对原始图像进行特征提取,再把提取到的特征送给全连接网络。
卷积计算可认为是一 种有效提取图像特征的方法。Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第1张图片

5.2感受野

感受野(Receptive Field) : 卷积神经网络各输出特征图中的每个像素点,在原始输入图片上映射区域的大小。就是说,对于5 * 5 的原始图片,用一个过滤器为3 * 3的进行卷积得到3 * 3 的输出为他的感受野;或者使用过滤器为 5 * 5 的只输出一个,也是他的感受野;
对于过滤器大小的选取,要考虑道计算量和参数量:
Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第2张图片

5.3全零填充

不多说,就是padding;
Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第3张图片

5.4TF描述卷积计算层

#5.4 TF描述卷积层
tf.keras.layers.Conv2D(
    filters=卷积核个数,
    kernel_size=卷积核尺寸,#正方形写核长整数,或(核高h,核宽w)
    strides=滑动步长,#横纵向相同写步长整数,或(纵向步长h,横向步长w)
    padding="same" or "valid",# 使用全零填充时same,不使用时valid(默认)
    activation="relu" or "sigmoid" or "tanh" or "softmax"so on, # 如有BN此处不写
    input_shape = (高,宽,通道数) #输入特征图维度,可省略
)

5.5批标准化

神经网络对0附近的数值很敏感,但是随着网络层数的增加,特征数据会出现偏离0均值的情况。标准化会使数据符合0均值,1标准差的分布,批标准化看图
这个不是太懂,没学过欸以前。。。
Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第4张图片
Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第5张图片
BN层在卷积层之后,激活层之前

#5.5批标准化

tf.keras.layers.BatchNormalization()

#使用方法:
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(filters=6,kernel_size=(5,5),padding='same'), # 卷积层
    tf.keras.layers.BatchNormalization(),# BN层
    tf.keras.layers.Activation('relu') # 激活层

    #其他层
])

5.6池化

#5.6池化
tf.keras.layers.MaxPool2D() # 最大池化
tf.keras.layers.AveragePooling2D() # 平均池化
'''
tf.keras.layers.MaxPool2D(
    pool_size = 池化核尺寸, #正方形写核长整数,或(核高h,核宽w)
    strides = 池化步长,#横纵向相同写步长整数,或(纵向步长h,横向步长w)
    padding = 'valid' or 'same' #使用全零填充时same,不使用时valid(默认)
    )

   tf.keras.layers.AveragePooling2D() # 参数与他相同 



'''


#使用方法:
#使用方法:
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(filters=6,kernel_size=(5,5),padding='same'), # 卷积层
    tf.keras.layers.BatchNormalization(),# BN层
    
    tf.keras.layers.Activation('relu') # 激活层
    tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=2,padding='same'),

    #其他层
])

5.7舍弃

就是那个随机失活的操作,Dropout的操作

#5.7拾弃
# 就是那个随机失活的操作,Dropout的操作
tf.keras.layers.Dropout(0.2)  # dropout层  里面参数是舍弃的比例
# 使用方法:
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding='same'),  # 卷积层
    tf.keras.layers.BatchNormalization(),  # BN层

    tf.keras.layers.Activation('relu')  # 激活层
    tf.keras.layers.MaxPool2D(pool_size=(2, 2), strides=2, padding='same'),
    tf.keras.layers.Dropout(0.2) # dropout层  里面参数是舍弃的比例
    # 其他层
])

5.8卷积神经网络

这个视频教程真的太棒了!六个小时一共,还干货满满
Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第6张图片

5.9CIFAR10数据集

Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第7张图片

5.10卷积网络搭建示例

5.11LeNet

Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第8张图片
Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第9张图片

5.12AlexNet

Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第10张图片

5.13VGGNet

5.14InceptionNet

Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第11张图片
每俩个inception组成一个block
Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第12张图片

5.15ResNet

解决了网络层数的增加,错误率增加的一些问题Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第13张图片Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第14张图片
每调用一次右边的类,生成一个小黄色块

5.16经典卷积网络小结

Tensorflow2.0学习笔记(二)北大曹健老师教学视频第五讲_第15张图片

总结

第六讲我就没看了,根据老师的这个总结,可以先练习,先背会鸢尾花和手写的这俩经典,然后根据本页的图多写写网络,按理说这么练习,练几天就可以真的是简简单单的入门了,看程序头不懵了吧。。。。。。。。这个教程真棒!
2020年7月7日

返回目录

你可能感兴趣的:(DL和ML笔记,卷积,神经网络,深度学习,卷积神经网络)