为什么多次预测结果不一致
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;这两行代码顺序不能颠倒
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/confusingbird/article/details/108799908