请问模型在autograd.record下和模型不在autograd下进行前向计算有什么区别

如题,请问模型在autograd.record下和模型不在autograd下进行前向计算有什么区别?
我把一个模型放在autograd_record 下进行前向计算,和同样一个模型不再autograd下进行计算所得到的输出不一样,请问这是什么原因?

类似问题的代码:

 with autograd.record():
        out = model(shapes, labels, sample_prob)
         ...
        loss = ...
    loss.backward()

    optimizer.step(bsz)
    
    
    if epoch % (opt.info_interval*10) == 0:
        out2  = model(shapes, labels, sample_prob)

得出out 和out2 相差较大。
model 中有 lstm,Conv3D, batchnorm, Dense 这些种类的层,没有用Dropout