计算图片的均值和方差用图片的归一化取值
注意:使用这种方法的前提是进行了数据批量化操作,需要使用神经网络库,torch,DataLoader
def getStat(data):
print(len(data))
loader = torch.utils.data.DataLoader(data, batch_size=1, shuffle=False,num_workers=0,pin_memory=True)
mean = torch.zeros(3)
std = torch.zeros(3)
for X, _ in loader:
for d in range(3):
mean[d] += X[:, d, :, :].mean()
std[d] += X[:, d, :, :].std()
mean.div_(len(data))
std.div_(len(data))
return list(mean.numpy()), list(std.numpy())
mean,std = getstat(train_data)#调用getstat
mean_,std_ = getstat(test_data)
print(mean,std)
print(mean_,std_)
此方法可以计算3通道和一个通道的均值和方差。