我用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
生成的错误:
ValueError: Input contains NaN, infinity or a value too large for dtype('float64')
我对活动部件进行了预处理,但不知道问题出在哪里。你知道吗
可能是某些输入数据丢失。 你可以用这句话来检查:如果你得到的是真的,那么你的数据就没有了。你需要再次检查你的数据。你知道吗
如果你得到假,你的数据是好的。你知道吗
相关问题 更多 >
编程相关推荐