张量流模型在保存和加载模型后停止训练

时间:2020-11-05 18:27:01

标签: python tensorflow keras deep-learning model

因此,我使用了 tensorflow.keras.models 中的 Model.save 函数来保存2个模型。但是,在加载这些模型后,Model.fit将停止训练权重。

我这样加载模型:

generator = tf.keras.models.load_model('***hardcoded path***\save\generator')
evaluator = tf.keras.models.load_model('***hardcoded path***\save\evaluator')

然后我有一个像这样的简单训练循环:

    while(not noErrors):
        noErrors = True

        scoreBest = evaluator(np.array([pair[0]]), training=False)
        scoreBest = (scoreBest.numpy())[0][0]

        scoreWorst = evaluator(np.array([pair[1]]), training=False)
        scoreWorst = (scoreWorst.numpy())[0][0]

        if(scoreWorst > scoreBest):
            print('%f > %f' % (scoreWorst,scoreBest))
            noErrors = False
            scoreWorst -= 1
            scoreBest += 1
            print('fit to %f and %f' % (scoreWorst, scoreBest))
            evaluator.fit(pair,np.array([scoreBest,scoreWorst]), epochs=1)

在保存和加载模型之前, scoreWorst 将减小,而 scoreBest 将增大。但是保存并加载后,输出为:

0.008503 > -0.001527
fit to -0.991497 and 0.998473
Train on 2 samples
2/2 [==============================] - 0s 17ms/sample - loss: 1.0000
0.008503 > -0.001527
fit to -0.991497 and 0.998473
Train on 2 samples
2/2 [==============================] - 0s 17ms/sample - loss: 1.0000
0.008503 > -0.001527
fit to -0.991497 and 0.998473
Train on 2 samples
2/2 [==============================] - 0s 17ms/sample - loss: 1.0000
0.008503 > -0.001527
fit to -0.991497 and 0.998473
Train on 2 samples
2/2 [==============================] - 0s 17ms/sample - loss: 1.0000
0.008503 > -0.001527
fit to -0.991497 and 0.998473
Train on 2 samples
2/2 [==============================] - 0s 17ms/sample - loss: 1.0000
0.008503 > -0.001527
fit to -0.991497 and 0.998473
Train on 2 samples
2/2 [==============================] - 0s 17ms/sample - loss: 1.0000

此输出是当我从头开始重新训练并立即保存并加载模型以确保它们还没有时间收敛到任何东西时的输出。

我在这里做错了什么?当我不加载模型时,培训将按预期进行。

0 个答案:

没有答案