-
模型训练
- 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计算
- 输入一批次数据
关于Pytorch中model.train()和model.eval()的详解
最新推荐文章于 2024-06-11 09:34:15 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)