Pytorch 更新分类图像中的目标

Pytorch 更新分类图像中的目标,pytorch,Pytorch,为什么我们要在这里用mc辍学更新贝叶斯cnn的实施目标 您提到的实现是一个数据并行的实现 这意味着,作者打算训练具有相同体系结构但超参数不同的多个网络 尽管以非传统的方式,这是update\u target所做的: update_target(net_test, net, 0.001) 它以较低的学习率更新net_测试,但将完全相同的参数更改应用于实际正在训练的原始net。只是变化的尺度不同 我假设这在计算效率方面是有用的,因为在主要训练阶段,只有一个网络实际上正在“训练”: outputs

为什么我们要在这里用mc辍学更新贝叶斯cnn的实施目标


您提到的实现是一个数据并行的实现

这意味着,作者打算训练具有相同体系结构但超参数不同的多个网络

尽管以非传统的方式,这是
update\u target
所做的:

update_target(net_test, net, 0.001)
它以较低的学习率更新net_测试,但将完全相同的参数更改应用于实际正在训练的原始net。只是变化的尺度不同

我假设这在计算效率方面是有用的,因为在主要训练阶段,只有一个网络实际上正在“训练”:

outputs = net(inputs)
loss = CE(outputs, labels)
loss.backward()
optimizer.step()

每一步少一次向前传球和一次向后支撑。

非常感谢,我有点卡住了,因为我是pytorch的初学者,你能告诉我这部分到底是什么吗?是比较还是什么?def main():用于透镜中的透镜:。。。。。。。。。。。。。。。保存(列奈、名字、网络、网络、测试)我的荣幸。请考虑接受我的回答,如果你认为它澄清了你发布的功能的目的。也许你可以把这个问题作为另一个问题。您所指的部分是主循环。它训练三个不同的网络。然后测试它们,然后保存网络的最终状态。主环打印所有三个网络的性能,所以是的,你可以把它看作是比较它们。顺便说一下,这三个网络作为全局变量包括在内:
lenets=[Net,Net\u DO,Net\u MCDO]
outputs = net(inputs)
loss = CE(outputs, labels)
loss.backward()
optimizer.step()