【发布时间】:2018-10-31 15:47:40
【问题描述】:
在tensorflow中似乎有办法做到这一点:Keyboard interrupt tensorflow run and save at that point
Keras 有这样的东西吗?
【问题讨论】:
标签: keras deep-learning
在tensorflow中似乎有办法做到这一点:Keyboard interrupt tensorflow run and save at that point
Keras 有这样的东西吗?
【问题讨论】:
标签: keras deep-learning
您可以捕获KeyboardInterrupt 异常并将模型保存在except 块中:
save_path = './keras-saves/_latest.ckpt'
try:
model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs)
except KeyboardInterrupt:
model.save(save_path)
print('Output saved to: "{}./*"'.format(save_path))
【讨论】:
我发现最好的方法是使用屏幕上的鼠标位置作为输入。
在以下示例中,如果您将鼠标移到左边缘 (x
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, ...)
(您可以通过鼠标位置轻松添加不同类型的在线交互作为输入...)
【讨论】: