在 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())
是你想要的吗?
我在 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())
是你想要的吗?