归一化一个归一化的输出
Unormalize an normalized output
我目前正在处理 NN 问题,我正在将输入映射到输出。
我已经对输入和输出进行了归一化,使它们在同一范围内 => -1 到 1,这样我就可以使用 tanh 作为激活函数。
我似乎从训练中得到了相当不错的结果,val_loss = 0.0156。
但要实际使用数据集,我必须对输出进行非标准化,这使得它与实际输出有很大不同。
我对 NN 很陌生,但通常会进行非标准化吗??如果不?这些问题是如何解决的?
我目前正在使用最小-最大归一化进行归一化,并且由于我存储了最大值和最小值,所以我将它们用于 return 这些值。
有关数据的更多信息:
数据集由 stft audio files, and the output is a feature vector (mfcc) 组成。
由于 stft 为我提供了复数,但由于 keras 无法处理复数,因此我将实部和虚部分开,并将它们连接起来。
您可以使用 lambda layer 作为网络本身的一部分执行非规范化步骤。
假设您可以定义一个归一化函数:
f = K.function(/* some function */)
您当前的型号是:
model = Sequential()
model.add(Dense(1000, input_dim=1000))
model.add(Dense(1000))
您可以通过以下方式标准化输出:
model = Sequential()
model.add(Dense(1000, input_dim=1000))
model.add(Dense(1000))
model.add(Lambda(lambda x: f(x))
我目前正在处理 NN 问题,我正在将输入映射到输出。
我已经对输入和输出进行了归一化,使它们在同一范围内 => -1 到 1,这样我就可以使用 tanh 作为激活函数。
我似乎从训练中得到了相当不错的结果,val_loss = 0.0156。
但要实际使用数据集,我必须对输出进行非标准化,这使得它与实际输出有很大不同。
我对 NN 很陌生,但通常会进行非标准化吗??如果不?这些问题是如何解决的?
我目前正在使用最小-最大归一化进行归一化,并且由于我存储了最大值和最小值,所以我将它们用于 return 这些值。
有关数据的更多信息:
数据集由 stft audio files, and the output is a feature vector (mfcc) 组成。 由于 stft 为我提供了复数,但由于 keras 无法处理复数,因此我将实部和虚部分开,并将它们连接起来。
您可以使用 lambda layer 作为网络本身的一部分执行非规范化步骤。
假设您可以定义一个归一化函数:
f = K.function(/* some function */)
您当前的型号是:
model = Sequential()
model.add(Dense(1000, input_dim=1000))
model.add(Dense(1000))
您可以通过以下方式标准化输出:
model = Sequential()
model.add(Dense(1000, input_dim=1000))
model.add(Dense(1000))
model.add(Lambda(lambda x: f(x))