Keras:如何设置模型加载后的学习阶段



当我尝试训练从json config + weights文件加载的预训练模型时,我遇到了问题。

我使用以下代码(简化):

from keras.utils.layer_utils import layer_from_config    
with open("config.json", "rb") as f:
    config = json.loads(f.read())
    model = layer_from_config(config)
model.load_weights("weights.net")
history = model.fit(batch, target, verbose=1, 
                    validation_data=(test_batch, test_target), shuffle=True)

我得到了下面的异常:

theano.gof.fg。MissingInputError:"图形的输入,用于计算DimShuffle{x,x}(keras_learning_phase),没有提供没有给定值。使用Theano标志exception_verbose ='high',for, keras_learning_phase)

我认为这是有意义的,因为我在模型中有dropout层,所以它应该知道当前的学习阶段。我如何将学习阶段设置为"训练"?或者这里可能有不同的问题?

提前感谢!

让我自己来回答这个问题。

此问题仅与keras 1.0.0版本相关,并在1.0.2中修复。所以上面的代码片段完全可以在新版本的keras上工作,不需要显式设置学习阶段。

相关内容

  • 没有找到相关文章

最新更新