大佬教程收集整理的这篇文章主要介绍了如何将运行统计数据删除到 pyTorch 中 Norm 层的默认值?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一些图像上训练了模型。现在要拟合类似的数据集但使用另一种颜色,我想加载这个模型,但我也想从 Batchnorm 层中删除所有运行统计数据(将它们设置为默认值,就像完全未经训练一样)。我应该重置哪些参数?简单的模型看起来像这样
import torch
import torch.nn as nn
class Net(nn.ModulE):
def __init__(self):
super(Net,self).__init__()
self.conv0 = nn.Conv2d(3,3,padding = 1)
self.norm = nn.batchnorm2d(3)
self.conv = nn.Conv2d(3,padding = 1)
def forWARD(self,X):
x = self.conv0(X)
x = self.norm(X)
return self.conv(X)
net = Net()
##or for preTrained it will be
##net = torch.load('net.pth')
def drop_to_default():
for m in net.modules():
if type(m) == nn.batchnorm2d:
####???####
drop_to_default()
最简单的方法是在 reset_running_stats()
对象上运行 BatchNorm
方法:
def drop_to_default():
for m in net.modules():
if type(m) == nn.batchNorm2d:
m.reset_running_stats()
def reset_running_stats(self) -> None:
if self.track_running_stats:
# running_mean/running_var/num_batches... are registered at runtime depending
# if self.track_running_stats is on
self.running_mean.zero_() # Zero (neutral) mean
self.running_var.fill_(1) # One (neutral) variance
self.num_batches_tracked.zero_() # number of batches tracked
您可以看到源代码 here,_NormBase
类。
以上是大佬教程为你收集整理的如何将运行统计数据删除到 pyTorch 中 Norm 层的默认值?全部内容,希望文章能够帮你解决如何将运行统计数据删除到 pyTorch 中 Norm 层的默认值?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。