pytorch掉坑记录:model.eval的作用说明
训练完train_datasets之后,model要来测试样本了。在model(test_datasets)之前,需要加上model.eval(). 否则的话,有输入数据,即使不训练,它也会改变权值。
这是model中含有batch normalization层所带来的的性质。
在做one classification的时候,训练集和测试集的样本分布是不一样的,尤其需要注意这一点。
补充知识:pytorch测试的时候为何要加上model.eval()
Do need to use model.eval() when I test?
Sure, Dropout works as a regularization for preventing overfitting during training.
It randomly zeros the elements of inputs in Dropout layer on forward call.
It should be disabled during testing since you may want to use full model (no element is masked)
使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval,eval()时,框架会自动把BN和DropOut固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大!!!!!!
以上这篇pytorch掉坑记录:model.eval的作用说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python pyecharts Boxplot箱线图的实现
本文主要介绍了Python pyecharts Boxplot箱线图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-05-05利用标准库fractions模块让Python支持分数类型的方法详解
最近在工作中遇到了分数处理,查找相关的资料发现可以利用Fraction类来实现,所以下面这篇文章主要给大家介绍了关于利用标准库fractions模块让Python支持分数类型的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。2017-08-08
最新评论