python - 如何保存有状态的张量流 keras 模型的状态?
问题描述
我正在尝试编写一种新方法来分析时间序列预测的预测。因此,我需要在每个时间戳(预测的)处复制我的学习模型,或者将其重置为前一个点,并为其提供不同的输入。
我用:
- tensorflow.python.keras(tf 版本:1.12)
- 蟒蛇3.7
我的网络:
model = Sequential()
model.add(GRU(100, return_sequences=True, stateful=True, batch_size=batchSize, input_shape=(x, y)))
model.add(Dropout(dropout))
model.add(GRU(units, return_sequences=False, stateful=True))
model.add(Dropout(dropout))
model.add(Dense(1, activation="linear", kernel_constraint=min_max_norm(min_value=-10)))
model.compile(loss='mean_squared_error', optimizer='nadam', metrics=['accuracy'])
目前唯一有效的是,从头开始预测前面的步骤:
for i in range(timestamps):
for j, features in enumerate(featuresTable[i]):
if i > 0:
model.predict(np.reshape(featuresList[:i], (i, 1, featuresList.shape[1])),
batch_size=self.batch_size)
predict = model.predict(np.reshape(features, (1, 1, len(features))), batch_size=self.batch_size)
model.reset_states()
其中 timestamps
是时间戳的数量,featuresTable
是包含每个时间戳的替代特征的表格,并且featuresList
是正常特征
我想要的是:
state = getState(model)
for i in range(timestamps):
for j, features in enumerate(featuresTable[i]):
predict = model.predict(np.reshape(features, (1, 1, len(features))), batch_size=self.batch_size)
setState(model,state)
model.predict(np.reshape(featuresList[i], (1, 1, featuresList.shape[1])), batch_size=self.batch_size)
state = getState(model)
提前谢谢你~ Lifree
解决方案
推荐阅读
- python - 如何在没有函数的情况下从用户输入中找到最小值和最大值
- r - call_modify 的嵌套使用
- python - 将熊猫数据框中的列移动到大型数据框中的最后一列的最佳方法
- python - 在 keras 中定义自定义损失函数
- reactjs - 在 React Native 中使用 withNavigationFocus 的内存泄漏问题
- php - Laravel 和干预图像 getSize() 错误
- java - 如何将需求翻译成Java?
- matlab - Matlab PDE Toolbox无法解决对流扩散
- python - Python | normalizing filenames with a regex mapping list
- google-apps-script - Google-apps-script 调试:找不到您请求的资源。(第 175 行,文件“代码”)