在Colab中在中断时保存Tensorflow编译模型

时间:2019-11-09 14:26:16

标签: tensorflow

我有一个模型,它需要很长时间才能完成纪元(设置为129)。假设,我想中断培训,但又不想失去模型。

model.compile(loss ='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(X_modified, ys, epochs = 127, verbose=1, callbacks=[callbacks] ) # verbose 1 means progress bar
from keras.models import load_model
file_Name = "shahnameh_embdding64_bidirectional_LSTM400_softmax.h5"
model.save(file_Name)

我使用了回调:

class myCallback(tf.keras.callbacks.Callback):
  def on_train_begin(self, logs={}):
        self.models = []
  def on_epoch_end(self, epoch, logs={}):
    try:
      target_acc = .2
      if logs.get('acc') > target_acc:
        print('\nReached '+target_acc+'% accuracy, so cancelling the accuracy')
        self.model.stop_training = True
        models.append(model)
    except KeyboardInterrupt:
      model = self.models[-1]

callbacks = myCallback()

运行此命令时,出现错误:

  

NameError:未定义名称“模型”

有什么想法吗? 任何帮助将不胜感激。

CS

1 个答案:

答案 0 :(得分:0)

在该行之间不是中断,而是在拟合过程中的其他地方。那

keras

我总是使用类似的东西