Python 如何完全重置Keras?

Python 如何完全重置Keras?,python,tensorflow,keras,Python,Tensorflow,Keras,我将Keras与scikit optimize结合使用,这意味着对于以后的每次迭代,都会创建、训练和测试一个新的Keras模型。在我开始使用GRU(或LSTM)单元的reccurent模型之前,它工作得很好。现在,在第一次迭代(完成时没有问题)之后,我得到以下错误: File "C:\...\my_script.py", line 157, in <module> n_calls=bayesian_iterations, x0=default_parameters)

我将Keras与scikit optimize结合使用,这意味着对于以后的每次迭代,都会创建、训练和测试一个新的Keras模型。在我开始使用GRU(或LSTM)单元的reccurent模型之前,它工作得很好。现在,在第一次迭代(完成时没有问题)之后,我得到以下错误:

  File "C:\...\my_script.py", line 157, in <module>
    n_calls=bayesian_iterations, x0=default_parameters)
  File "C:\ProgramData\Anaconda3\lib\site-packages\skopt\optimizer\gp.py", line 228, in gp_minimize
    callback=callback, n_jobs=n_jobs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\skopt\optimizer\base.py", line 253, in base_minimize
    next_y = func(next_x)
  File "C:\...\my_script.py", line 121, in compute_cost
    model = train_model(args,X_train,y_train,n_epochs=n_epochs)
  File "C:\...\my_script.py", line 96, in train_model
    activation='elu',alpha=alpha,l2_alpha=l2_alpha)
  File "C:\...\my_script.py", line 63, in create_model
    x = GRU(units=n_neurons,activation=activation,return_sequences=True)(x)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\recurrent.py", line 499, in __call__
    return super(RNN, self).__call__(inputs, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 619, in __call__
    output = self.call(inputs, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\recurrent.py", line 1628, in call
    initial_state=initial_state)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\recurrent.py", line 564, in call
    if len(initial_state) != len(self.states):
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\recurrent.py", line 401, in states
    num_states = len(self.cell.state_size)
TypeError: object of type 'numpy.int32' has no len()

虽然在使用递归网络之前,我没有使用
reset\u uid()
,而且效果很好,但我只是想看看它是否改善了我的情况,但没有。我不认为这是正常的行为,但我需要一个快速的解决方案,我认为如果有一种方法可以完全重置Keras,它会工作(因为它在第一次迭代中工作,没有问题)。我尝试使用importlib import reload中的
,然后使用
重新加载(keras)
,但没有改变(尽管我使用
从keras import something中单独导入keras模块,所以我不知道这是否会改变)。我找不到完全重置Keras的方法,因此我在这里提出了问题。

请发布一些代码:我相当确定您的代码中存在导致错误评估的错误(看起来您使用的是有状态RNN或类似的东西)
K.reset_uids()
K.clear_session()