• Tensorflow2.0笔记31——卷积神经网络


    Tensorflow2.0笔记

    本博客为Tensorflow2.0学习笔记,感谢北京大学微电子学院曹建老师

    2.5输出特征计算

    ​ 输出特征尺寸计算:在了解神经网络中卷积计算的整个过程后,就可以对输出特征图的尺寸进行计算,如图 5-8 所示,5×5 的图像经过 3×3 大小的卷积核做卷积计算后输出特征尺寸为 3×3。

    2.6全零填充

    ​ 为了保持输出图像尺寸与输入图像一致,经常会在输入图像周围进行全零填充,如图 5-9 所示,在 5×5 的输入图像周围填 0,则输出特征尺寸同为 5×5。

    image-20210624082359377

    image-20210624082414296

    ​ 上下两行分别代表对输入图像进行全零填充或不进行填充,对于 5×5×1 的图像来说,当 padding = ‘SAME’时,输出图像边长为 5;当 padding = ‘VALID’时,输出图像边长为 3。具备以上知识后,就可以在 Tensorflow 框架下利用 Keras 来构建 CNN 中的卷积层,使用的是 tf.keras.layers.Conv2D 函数,具体的使用方法如下:

    tf.keras.layers.Conv2D(
    input_shape = (高, 宽, 通道数), #仅在第一层有filters = 卷积核个数,
    kernel_size = 卷积核尺寸, strides = 卷积步长,
    padding = ‘SAME’ or ‘VALID’,
    activation = ‘relu’ or ‘sigmoid’ or ‘tanh’ or ‘softmax’等 #如有 BN 则此处不用写
    )
    

    ​ 使用此函数构建卷积层时,需要给出的信息有:

    A) 输入图像的信息,即宽高和通道数;

    B) 卷积核的个数以及尺寸,如 filters = 16, kernel_size = (3, 3)代表采用 16 个大小为 3×3 的卷积核;

    C) 卷积步长,即卷积核在输入图像上滑动的步长,纵向步长与横向步长通常是相同的,默认值为 1;

    D) 是否进行全零填充,全零填充的具体作用上文有描述;

    E) 采用哪种激活函数,例如 relu、softmax 等,各种函数的具体效果在前面章节中有详细描述;

    ​ 这里需要注意的是,在利用 Tensorflow 框架构建卷积网络时,一般会利用 BatchNormalization 函数来构建 BN 层,进行批归一化操作,所以在 Conv2D 函数中经常不写 BN。BN 操作的具体含义和作用见下文。

  • 相关阅读:
    test20190805 夏令营NOIP训练20
    test20190803 夏令营NOIP训练19
    test20190802 夏令营NOIP训练18
    「SDOI2016」征途
    LG4195 【模板】exBSGS
    test20190731 夏令营NOIP训练16
    CF600E Lomsat gelral 和 CF741D Dokhtar-kosh paths
    CF623E Transforming Sequence
    LG4351 [CERC2015]Frightful Formula
    CF553E Kyoya and Train
  • 原文地址:https://www.cnblogs.com/wind-and-sky/p/14925526.html
Copyright © 2020-2023  润新知