Tensorflow2实现残差网络

本文介绍了如何使用TensorFlow2实现残差网络,这种网络结构解决了深度学习中梯度消失的问题,允许更深层次的网络训练。内容包括残差块的工作原理、残差网络的整体结构、在Fashion_MNIST数据集上的应用,以及训练过程中的注意事项和结果展示。
摘要由CSDN通过智能技术生成

残差网络缓解了在深度神经网络中增加深度带来的梯度消失问题,使在实际效果中加深神经网络得到更好的训练结果理论成真。其主要由输入部分,多个残差块,全连接部分网络组成。
残差块即是指在计算时可以通过跳过某几层直接向后传到输出部分的几层网络组成,简单来说就是跳步进行权重的优化,具体形式如下图
在这里插入图片描述
残差块使得本来需要顺序执行的网络模式变得可以跳跃着执行,加速了训练的同时,使深层的神经网络在实际效果上更好,但使用残差块的时候仍有许多需要注意的地方,放在后面代码中说。
上干货,本次使用的数据集为Fashion_mnist,有10个种类的服装,像素大小为(28x28),有60000个数据。

首先需要通过自定义网络来创建残差块实现自己的layers.Layer

class Baisblock(layers.Layer):
    def __init__(self,filter_num,stride=1):
        super(Baisblock,self).__init__()
        self.conv1 = layers.Conv2D(filter_num,(3,3),strides=stride,padding='same')
        # 残差块的第一个卷积层
        self.bn1 = layers.BatchNormalization()
        # 将卷积层输出的数据批量归一化
        self.relu = layers.ReLU()
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值