pytorch:model.train和model.eval用法及区别详解

作者:Hinton-wu 时间:2022-07-13 19:22:51 

使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval,eval()时,框架会自动把BN和DropOut固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大!!!!!!


Class Inpaint_Network()
......

Model = Inpaint_Nerwoek()

#train:

Model.train(mode=True)

.....

#test:

Model.eval()

model.train()

启用 BatchNormalization 和 Dropout

model.eval()

不启用 BatchNormalization 和 Dropout

训练完train样本后,生成的模型model要用来测试样本。在model(test)之前,需要加上model.eval(),否则的话,有输入数据,即使不训练,它也会改变权值。这是model中含有batch normalization层所带来的的性质。

在做one classification的时候,训练集和测试集的样本分布是不一样的,尤其需要注意这一点。

来源:https://blog.csdn.net/qq_38410428/article/details/101102075

标签:pytorch,model.train,model.eval
0
投稿

猜你喜欢

  • 用python爬取历史天气数据的方法示例

    2022-10-30 21:28:42
  • 一个简单的ASP生成HTML分页程序

    2009-07-05 18:32:00
  • 关于JS中的事件--Event对象

    2008-03-16 14:22:00
  • 设计稿标注首屏线的确定始末

    2011-03-30 12:36:00
  • Go项目中添加生成时间与版本信息的方法

    2024-04-27 15:31:39
  • Python实现的用户登录系统功能示例

    2021-07-02 03:38:18
  • ASP XML编程objXML.async = False

    2011-04-21 10:55:00
  • Jquery获取和修改img的src值的方法

    2024-04-22 13:05:32
  • python 字典访问的三种方法小结

    2022-03-25 06:07:26
  • 为什么Access数据库的精髓不在VBA之中

    2008-11-28 16:45:00
  • explain分析sql效率的方法

    2024-01-22 01:26:55
  • python面向对象 反射原理解析

    2021-05-14 08:56:32
  • 解决Vue不能检测数组或对象变动的问题

    2024-04-27 15:59:40
  • 举例讲解Python中的算数运算符的用法

    2022-03-30 22:14:49
  • 关于Youtube URL的十个技巧

    2009-04-21 13:19:00
  • 详解python中的生成器、迭代器、闭包、装饰器

    2023-06-25 19:39:57
  • 使用有趣的自定义标记布局页面

    2012-07-12 01:29:03
  • Go语言Goroutinue和管道效率详解

    2024-02-02 18:19:09
  • python练习程序批量修改文件名

    2022-01-29 06:53:12
  • Python SSL证书验证问题解决方案

    2022-11-06 13:54:35
  • asp之家 网络编程 m.aspxhome.com