首页 > 解决方案 > “ValueError:没有为任何变量提供渐变”

问题描述

我正在尝试优化 LSTM 模型的参数。该模型具有多个时间序列特征,我正在尝试为未来进行预测。但是,这会导致错误“ValueError:没有为任何变量提供渐变:['lstm_6/lstm_cell_6/kernel:0', 'lstm_6/lstm_cell_6/recurrent_kernel:0', 'lstm_6/lstm_cell_6/bias:0', 'lstm_7/lstm_cell_7 /kernel:0'、'lstm_7/lstm_cell_7/recurrent_kernel:0'、'lstm_7/lstm_cell_7/bias:0'、'time_distributed_3/kernel:0'、'time_distributed_3/bias:0']。不知道我做错了什么

from tensorcross.model_selection import GridSearch
n_past = 7
n_future = 7
n_features = 10

def build_model( 
            optimizer: tf.keras.optimizers.Optimizer,
            learning_rate: float,
            units: int
        )-> tf.keras.models.Model:
            encoder_inputs = tf.keras.layers.Input(shape=(n_past, n_features))
            encoder_l1 = tf.keras.layers.LSTM(units=units, return_state=True)
            encoder_outputs1 = encoder_l1(encoder_inputs)
            encoder_states1 = encoder_outputs1[1:]
            decoder_inputs = tf.keras.layers.RepeatVector(n_future)(encoder_outputs1[0])
            decoder_l1 = tf.keras.layers.LSTM(units=units, return_sequences=True)(decoder_inputs,initial_state = encoder_states1)
            decoder_outputs1 = tf.keras.layers.TimeDistributed(tf.keras.layers.Dense(n_features))(decoder_l1)
            model = tf.keras.models.Model(inputs=encoder_inputs,outputs=decoder_outputs1)
            opt = optimizer(learning_rate=learning_rate)
            model.compile(
            loss="mse", optimizer=opt, metrics=["mse"]
        )
            return model 


param_grid = {
        "optimizer": [
            tf.keras.optimizers.Adam,
            tf.keras.optimizers.RMSprop,
            
        ],
         "units":[8,16,32,64,128,256]  ,     
        "learning_rate": [0.001, 0.0001]
    }

grid_search = GridSearch(
        model_fn=build_model,
        param_grid=param_grid,
        verbose=1,
       # num_features=1,
       # num_targets=1
    )

grid_search.fit(
        train_dataset=(X_train,y_train),
        val_dataset=(X_test,y_test),
        epochs=100,
        verbose=1
    )

标签: tensorflowdeep-learninglstmgrid-searchhyperparameters

解决方案


推荐阅读