Pytorch中的train和eval用法注意点

1.介绍

    一般情况,model.train()是在训练的时候用到,model.eval()是在测试的时候用到

 

2.用法

  1. 如果模型中没有类似于BN这样的归一化或者Dropoutmodel.train()model.eval()可以不要(建议写一下,比较安全),并且model.train()model.eval()得到的效果是一样
  2. 如果模型中有类似于BN这样的归一化或者Dropout并且程序需要边训练和边测试,最好就是用model.eval()测试完之后,后面补一个model.train()其中model.train()是保证BN用每一批数据的均值和方差model.eval()是保证BN全部训练数据的均值和方差而对于Dropoutmodel.train()是随机取一部分网络连接来训练更新参数,而model.eval()是利用到了所有网络连接(结果是取了平均)
发布了138 篇原创文章 · 获赞 141 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/u013289254/article/details/103621792