【问题标题】:Prediction Error with stacked denoising autoencoder in keraskeras 中堆叠去噪自编码器的预测误差
【发布时间】:2018-09-16 07:42:24
【问题描述】:

我用 keras 训练了一个堆叠去噪自动编码器。在预测新样本之前,一切都很好。用于预测的样本被命名为“活动”部分,我对这部分进行了必要的预处理和归一化,就像我对训练部分所做的一样,并以同样的方式为其添加了噪声。

这里是去噪自动编码器:

checkpointer = ModelCheckpoint(filepath="modelyes.h5",
                               verbose=0,
                               save_best_only=True,
                               save_weights_only=True)
tensorboard = TensorBoard(log_dir='/tmp/autoencoder',
                          histogram_freq=0,
                          write_graph=True,
                          write_images=True)
input_enc = Input(shape=(input_size,))
hidden_1 = Dense(hidden_size1, activation='relu')(input_enc)
hidden_11 = Dense(hidden_size2, activation='relu')(hidden_1)
code = Dense(code_size, activation='relu')(hidden_11)
hidden_22 = Dense(hidden_size2, activation='relu')(code)
hidden_2 = Dense(hidden_size1, activation='relu')(hidden_22)
output_enc = Dense(input_size, activation='tanh')(hidden_2)
D_autoencoder_yes = Model(input_enc, output_enc)

D_autoencoder_yes.compile(optimizer='adam',
                         loss='mean_squared_error', 
                         metrics=['accuracy'])
history_D_yes = D_autoencoder_yes.fit(df_noised_noy_norm_y, df_noyau_norm_y,
                               epochs=200,
                                batch_size=batch_size,
                                shuffle = True,
                                validation_data=(df_noised_test_norm_y, df_test_norm_y),
                                verbose=1, 
                                callbacks=[checkpointer, tensorboard]).history
D_autoencoder_yes.save_weights("modelyes.h5")
D_autoencoder_yes.load_weights("modelyes.h5")

这是预测脚本:

predicted_active = D_autoencoder_yes.predict(df_noised_active_norm)
print(predicted_active.tolist())

下面是我如何为活动部分添加噪音:

mu, sigma = 2, 3
np.random.seed(42)
noise_active = np.random.normal(mu, sigma, [10000,48])
noised_active = df_active + noise_active

生成的ERROR

ValueError: Input contains NaN, infinity or a value too large for dtype('float64')

我对活动部分进行了预处理,但我不明白问题出在哪里。

【问题讨论】:

    标签: python keras autoencoder valueerror


    【解决方案1】:

    可能是您的某些输入数据丢失。 你可以用这条线检查:如果你得到 True,你的数据有 NaN。您需要再次检查您的数据。

    `print(df.isnull().values.any()) #check missing values`
    

    如果你得到 False,你的数据是好的。

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2019-12-12
      • 2016-06-03
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多