关于Pytorch中model.train()和model.eval()的详解

本文介绍了深度学习中模型训练和测试阶段如何使用Dropout和BatchNormalization。训练时启用这两项技术能加速网络收敛,防止梯度消失,并有助于避免过拟合。BatchNormalization通过计算批次数据的均值和方差,使数据趋于正态分布,其训练参数在评估时不更新。测试时,这些技术被禁用以获得稳定的结果。
摘要由CSDN通过智能技术生成
  • 模型训练

    • model.train()
    • 启用Dropout和BatchNormalization
    • Droupout=True
    • BatchNormalization=True
    • 训练过程中会以一定的概率丢掉网络连接的节点
  • 模型测试

    • model.eval()
    • 不启用Dropout和BatchNormalization
    • Dropout=False
    • BatchNormalization=False
    • 测试过程中不会丢掉网络连接的节点
  • 为啥使用BatchNormalization和Dropout?

    • 防止者消失
    • 加快网络收敛(BN作用)
    • 防止过拟合
  • BatchNormalization

    • 主要是计算一个批次的方差
    • 其中间的计算就可以想象把一个批次的数据做了一个激活
    • 经过BN层的数据趋于正态分布
    • 在BN层这是训练一个权值矩阵和偏置的,因此在model.eval()层直接使用训练好的参数
  • BatchNormalization计算

    • 输入一批次数据 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值