【发布时间】:2020-01-29 22:22:32
【问题描述】:
我正在构建一个自动编码器,并验证模型的进度 - 对于验证集中的每个条目,我在每个纪元之后计算 MSE 和 MAE:
for validation_sample in x_pred:
prediction = autoencoder.predict(validation_sample)
current_validation_mae.append(keras.backend.eval(keras.losses.mean_absolute_error(validation_sample, prediction)))
current_validation_mse.append(keras.backend.eval(keras.losses.mean_squared_error(validation_sample, prediction)))
之后,我将该数组除以验证中的 num 个样本,从而得到真正的 MAE/MSE。
我的数据是基因表达数据。 1 个样本有 17000 个特征,每个特征有 1 个数据点。总共 5000 个样本。
使用 10 个样本验证时的性能(在超级计算机上):
预测创建时间:0.019748687744140625 秒。
MAE 耗时:1.1507933139801025 秒。
MSE 耗时:1.1251187324523926 秒。
有什么可以改进的?
【问题讨论】:
-
你为什么要一个接一个地做,而不是一次做整个批次?
-
当我将整个 x_pred 放入 autoencoder.predict(x_pred) 时 - 即使有很多样本,它也会输出 1 个样本。这就是为什么我想我需要一个一个地做。
标签: python performance keras autoencoder mse