如何为3D数组的图像计算np.mean?

问题描述 投票:0回答:1

我想使用平均减法和标准化作为我的CNN模型的规范化。我正在研究Keras分类图像。

但是,我还没有完全理解使用平均减法,标准化和简单处理(例如重新缩放图像= / 255)之间的区别。

在这个question中提到有三种方法可以做到:

np.mean(x) # calculates the mean of the array x
x-np.mean(x) # this is euivalent to subtracting the mean of x from each value in x
x-=np.mean(x) # the -= means can be read as x = x- np.mean(x)

我目前使用的是简单的重新缩放:

train_data = train_data / 255

但我的模特表现很低。所以,我决定更改标准化并使用平均减法,但我不知道如何为3D数组做到这一点。

python image keras mean np
1个回答
0
投票

有不同的方法来进行图像标准化。它解释了here

对于您的情况,如果您想通过减去数组的平均值来进行标准化。您可以使用np.mean将3D阵列的平均值与两个轴一起使用。它将为您提供一个进一步从原始值中减去的缩放器值。

train_data = np.random.rand(28,28,3)
mean = np.mean(train_data)
train_data -= mean

如果你想减去每个通道的平均值,你可以在axis函数中使用mean参数。

mean = np.mean(train_data,axis=(0, 1))

这将给出每个通道的平均值,并减去平均值,如上面的train_data-=mean

此外,您可以通过减去平均值并除以其标准偏差来标准化数据。它在机器学习应用中被广泛使用。

© www.soinside.com 2019 - 2024. All rights reserved.