gpt4 book ai didi

machine-learning - MLP Keras 预测的循环程序

转载 作者:行者123 更新时间:2023-11-30 09:04:47 25 4
gpt4 key购买 nike

我(有点像初学者)在时间序列数据应用程序上尝试使用 Keras,我创建了一个回归模型,然后将其保存以在不同的 Python 脚本上运行。

我正在处理的时间序列数据是每小时数据,我使用 Keras 中保存的模型来预测数据集中每个小时的值。 (data = CSV 文件读入 pandas)对于一年的时间序列数据,有 8760 个(一年中的小时)预测,最后我尝试对最后的预测值进行求和.

在下面的代码中,我没有展示如何重新创建模型架构(keras 对保存模型的要求),并且代码运行速度非常慢。对于 200 个以下的预测,此方法似乎很好,但对于 8760,代码似乎陷入了太多的困境,无法完成。

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

#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 语句..

总而言之,试试这个:

params_array = []

for i, row in data.iterrows():
params = row.values

if (params.ndim == 1):
params = np.array([params]) # is this if really necessary??

params_array.append(params)

params_array = np.asarray(params_array, dtype=np.float32)
total_estKwh = load_trained_model(weights_path).predict(params_array)


df = pd.DataFrame.from_records(total_estKwh)
total = df.sum()
totalStd = np.std(df.values)
totalMean = df.mean()

关于machine-learning - MLP Keras 预测的循环程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55409283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com