pytorch掉坑记录:model.eval的作用说明

作者:youuuuuziiii 时间:2023-01-07 11:52:18 

训练完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层导致生成图片颜色失真极大!!!!!!

来源:https://blog.csdn.net/iammelon/article/details/89928531

标签:pytorch,model,eval
0
投稿

猜你喜欢

  • 使用Matplotlib 绘制精美的数学图形例子

    2022-11-25 11:03:04
  • Python中实现常量(Const)功能

    2021-01-27 17:16:54
  • Javascript操作表单之间的数据传递

    2007-10-25 12:58:00
  • pygame库实现俄罗斯方块小游戏

    2022-09-11 10:43:37
  • mysql获得60天前unix时间思路及代码

    2024-01-29 01:44:07
  • SQLServer2005重建索引前后对比分析

    2024-01-27 17:27:09
  • PyTorch上实现卷积神经网络CNN的方法

    2023-10-30 11:37:05
  • 分享十个Python超级好用提高工作效率的自动化脚本

    2021-06-26 17:17:16
  • Python使用random和tertools模块解一些经典概率问题

    2023-03-08 13:11:37
  • 用户反馈对产品设计的帮助

    2009-02-09 13:15:00
  • JavaScript解决Joseph问题

    2008-06-21 17:11:00
  • 浅谈keras中的后端backend及其相关函数(K.prod,K.cast)

    2021-07-04 08:53:54
  • SQL Server 2005 SSIS技巧:动态目的文件名

    2008-12-05 15:47:00
  • Vue.2.0.5过渡效果使用技巧

    2024-04-10 10:33:12
  • d3.js实现简单的网络拓扑图实例代码

    2024-05-09 10:19:58
  • 用python写爬虫简单吗

    2024-01-02 08:03:26
  • MySQL 查询 并集、交集、差集方式

    2024-01-18 11:34:36
  • Golang 使用gorm添加数据库排他锁,for update

    2024-01-29 09:34:53
  • Python+radar实现随机日期时间的生成

    2021-04-16 23:22:57
  • asp.net 防止用户通过后退按钮重复提交表单

    2023-07-21 00:03:54
  • asp之家 网络编程 m.aspxhome.com