脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - pytorch预测之解决多次预测结果不一致问题

pytorch预测之解决多次预测结果不一致问题

2021-11-19 12:14confusingbird Python

这篇文章主要介绍了pytorch多次预测结果不一致的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

为什么多次预测结果不一致

1、检查是否在每次预测前使用

?
1
model.eval()

或者是

?
1
2
with torch.no_grad():
   for ...

推荐下面的方法,上面的的方法计算梯度,但是并不反向传播,下面的方法既不计算梯度,也不反向传播,速度更快。

2、检查是否取消了所有的dropout

3、设置随机种子

?
1
2
3
4
5
6
7
def setup_seed(seed):
    np.random.seed(seed)
    random.seed(seed)
    torch.manual_seed(seed) #cpu
    torch.cuda.manual_seed_all(seed)  #并行gpu
    torch.backends.cudnn.deterministic = True  #cpu/gpu结果一致
    torch.backends.cudnn.benchmark = True   #训练集变化不大时使训练加速

4、保证实例化模型前要将is_training置为false;这两行代码顺序不能颠倒

pytorch预测之解决多次预测结果不一致问题

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/confusingbird/article/details/108799908

延伸 · 阅读

精彩推荐