首页 > 解决方案 > Tensorflow:如何处理预处理。归一化返回 NaN

问题描述

我正在构建一个 keras 模型并尝试使用来自https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/Normalization的 tf.keras.layers.experimental.preprocessing.Normalization进行标准化输入训练数据如下:

normalize = preprocessing.Normalization()
normalize.adapt(trainX)
model = Sequential([
    normalize,
    Dense(dim + 1, input_dim=dim, activation="relu"),
    Dense(dim / 2, activation="relu"),
])

目标是在保存的模型中保存规范化。我遇到的问题normalize(trainX)是将一些输入归一化,nan因为很可能是方差中的零除。例如一行输出:[ 0.00000000e+00, nan, 9.40457404e-01, 9.40672755e-01, 9.40672755e-01, 9.40672755e-01, 9.40672755e-01, nan, nan, nan, nan, nan]

有没有办法处理零除法,preprocessing.Normalization()或者我应该考虑另一种标准化的方法,我可以在模型中保存?

标签: tensorflowkerasneural-networknormalization

解决方案


推荐阅读