在 Keras 中标准化 numpy 数组

Standardizing numpy array in Keras

我在 Keras 中训练完我的模型后,就该进行预测了,所以我正在使用一些数据来检查我的模型。然而,训练的模型在训练前是标准化的(非常不同的值范围)。

所以为了对某些数据进行预测,我也应该对其进行标准化:

packet = numpy.array([[3232235781, 3232235779, 6, 128, 2, 1, 0, 524288, 56783, 502, 0, 0x00000010, 0, 0, 61, 0, 0, 0]])
scaler = StandardScaler().fit(packet)
rescaled_packet = scaler.transform(packet)
print(rescaled_packet) 

输出始终为 0:[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]

有谁知道如何标准化 numpy 数组?

请注意,出现警告错误说 DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler. warnings.warn(msg, _DataConversionWarning) 但我不认为这是问题所在。

这实际上是因为您的数据集中只有一个示例。当您使用一个示例在 table 上调用 fit - 计算每列的平均值 - 但如果每列中只有一个数字 - 此 mean 等于第一个(而且只有)行。这就是为什么您要获得 0 的向量。

import numpy as np

a = np.array([10,1,-4,35,26])
a_stand = (a - a.mean()*np.ones(len(a)))/(a.std())

是你想要的吗?