Tensorflow keras如何用模型的输出来输入变量

Tensorflow keras如何用模型的输出来输入变量,tensorflow,keras,keras-layer,tf.keras,Tensorflow,Keras,Keras Layer,Tf.keras,一年来我一直在考虑这个问题,我想用预测的t+0作为输入来预测t+1。 我所发现的只是一步一步地运行我的模型,并手动将我的最后预测插入下一步运行的输入中。。。效率不高,不可能训练 我使用keras和tensorflow。谢谢你的帮助 我建议你。当您指定此模型时,在每个步骤中使用以前的预测作为新拟合的特征来迭代拟合。下面是一个回归任务中的示例 import numpy as np import tensorflow as tf from tensorflow.keras.layers import

一年来我一直在考虑这个问题,我想用预测的t+0作为输入来预测t+1。 我所发现的只是一步一步地运行我的模型,并手动将我的最后预测插入下一步运行的输入中。。。效率不高,不可能训练

我使用keras和tensorflow。谢谢你的帮助

我建议你。当您指定此模型时,在每个步骤中使用以前的预测作为新拟合的特征来迭代拟合。下面是一个回归任务中的示例

import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.multioutput import RegressorChain

n_sample = 1000
input_size = 20

X = np.random.uniform(0,1, (n_sample,input_size))
y = np.random.uniform(0,1, (n_sample,3)) <=== 3 step forecast

def create_model():
    
    global input_size
    
    model = Sequential([
        Dense(32, activation='relu', input_shape=(input_size,)),
        Dense(1)
    ])

    model.compile(optimizer='Adam', loss='mse')
    input_size += 1 # <== important 
    # increase the input dimension and include the previous predictions in each iteration
    
    return model

model = tf.keras.wrappers.scikit_learn.KerasRegressor(build_fn=create_model, epochs=1, 
                                                       batch_size=256, verbose = 1)
chain = RegressorChain(model, order='random', random_state=42)
chain.fit(X, y)

chain.predict(X).shape
将numpy导入为np
导入tensorflow作为tf
从tensorflow.keras.layers导入*
从tensorflow.keras.models导入*
从sklearn.multioutput导入回归链
n_样本=1000
输入大小=20
X=np.随机.均匀(0,1,(n_样本,输入大小))

y=np.random.uniform(0,1,(n_sample,3))如果我使用lstm和seq of 5 last time step input,它也可以管理最后5个预测时间步长?您可以根据需要管理和自定义它。我不熟悉KleArn,我在实现方面有一些困难我的代码/模型有点复杂。。。。但是你的解决方案看起来很棒,谢谢!