MLP Keras预测的循环程序

时间:2019-03-28 13:54:18

标签: machine-learning python keras regression prediction

我(有点像是初学者)正在时间序列数据应用程序上试验Keras,在其中创建了回归模型,然后将其保存以在其他Python脚本上运行。

我要处理的时间序列数据是小时数据,我正在Keras中使用保存的模型来预测数据集中每个小时的值。 ({bq --location=US load --source_format=DATASTORE_BACKUP --projection_fields="field1, field4, field2, field3" --replace mydataset.table gs://mybucket/2019-03-25T02:56:02_47688/default_namespace/kind_data/default_namespace_datakind.export_metadata = CSV文件被读入了大熊猫)有了长达数年的时间序列数据,有8760(一年中的小时数)个预测,最后我尝试在最后求和这些预测的值。

在下面的代码中,我没有显示如何重新创建模型体系结构(已保存模型的keras要求),并且代码的运行速度非常慢。对于200次以下的预测,此方法似乎不错,但对于8760次的预测,该代码似乎停滞不前,以至于无法完成。

我对数据库没有任何经验,但是与将8760个keras预测存储在Python列表中相比,这是一种更好的方法吗?感谢您提供的任何提示,我仍在学习中。

data

1 个答案:

答案 0 :(得分:1)

似乎没有明显的理由让您的生活变得非常困难 ...

对于初学者来说,您不需要为每一行都加载模型-这太过分了!您应该将#set initial loop params & empty list to store modeled data row_num = 0 total_estKwh = [] for i, row in data.iterrows(): params = row.values if (params.ndim == 1): params = np.array([params]) estimatedKwh = load_trained_model(weights_path).predict(params) print('Analyzing row number:', row_num) total_estKwh.append(estimatedKwh) row_num += 1 df = pd.DataFrame.from_records(total_estKwh) total = df.sum() totalStd = np.std(df.values) totalMean = df.mean() 循环中的load_trained_model(weights_path) 移出,类似

for

,然后将循环中的相应行替换为

model = load_trained_model(weights_path)  # load ONCE

第二,再次调用模型进行逐行预测仍然没有效率;最好先将estimatedKwh = model.predict(params) 准备为数组,然后将其输入模型以获取批量预测。也忘记了params语句。

总共,请尝试以下操作:

print