Keras键盘中断停止训练?

Keras键盘中断停止训练?,keras,deep-learning,Keras,Deep Learning,在tensorflow中似乎有一种方法可以做到这一点: Keras中是否存在类似的情况?您可以捕获键盘中断异常,并将模型保存在块中,但块除外: save_path='./keras save/_lastest.ckpt' 尝试: 模型安装(x_系列、y_系列、, 批次大小=批次大小, 时代=时代) 除键盘中断外: model.save(保存路径) 打印('输出保存到:“{}./*”。格式(保存路径)) 我发现最好的方法是使用鼠标在屏幕上的位置作为输入 在下面的示例中,如果将鼠标移到左边缘(xb

在tensorflow中似乎有一种方法可以做到这一点:


Keras中是否存在类似的情况?

您可以捕获
键盘中断
异常,并将模型保存在
块中,但
块除外:

save_path='./keras save/_lastest.ckpt'
尝试:
模型安装(x_系列、y_系列、,
批次大小=批次大小,
时代=时代)
除键盘中断外:
model.save(保存路径)
打印('输出保存到:“{}./*”。格式(保存路径))

我发现最好的方法是使用鼠标在屏幕上的位置作为输入


在下面的示例中,如果将鼠标移到左边缘(xbtw此方法在linux上运行良好,但在windows上似乎有问题。我尝试在windows 10上的keras脚本中使用此方法,该脚本也导入sklearn,然后键盘中断不再工作。我喜欢此方法,因为退出列车循环后,您可以继续进行绘图和预测
def queryMousePosition():
    from ctypes import windll, Structure, c_long, byref
    class POINT(Structure): _fields_ = [("x", c_long), ("y", c_long)]
    pt = POINT()
    windll.user32.GetCursorPos(byref(pt))
    return pt.x, pt.y  # %timeit queryMousePosition()


class TerminateOnFlag(keras.callbacks.Callback):
    def on_batch_end(self, batch, logs=None):
        mouse_x, mouse_y = queryMousePosition()
        if mouse_x < 10:
            self.model.stop_training = True

callbacks=[keras.callbacks.ReduceLROnPlateau(), TerminateOnFlag()]

model.fit_generator(..., callbacks=callbacks, ...)