mindspore.train.OnRequestExit
- class mindspore.train.OnRequestExit(save_ckpt=True, save_mindir=True, file_name='Net', directory='./', sig=signal.SIGTERM)[源代码]
响应用户关闭请求,退出训练或推理进程,保存checkpoint和mindir。
在训练开始前,注册OnRequestExit回调,当用户想要退出训练进程并保存训练数据时,可通过发送注册的退出信号 sig 到训练进程。 训练进程执行完当前step后,保存当前训练状态,包括checkpoint和mindir,然后退出训练过程。
- 参数:
save_ckpt (bool) - 退出训练或推理进程时,是否保存checkpoint。默认值:True。
save_mindir (bool) - 退出训练或推理进程时,是否保存mindir。默认值:True。
file_name (str) - 退出训练或推理进程时,保存的checkpoint和mindir的名字,checkpoint文件加.ckpt后缀,mindir文件加.mindir后缀。默认值:’Net’。
directory (str) - 退出训练或推理进程时,保存的checkpoint和mindir的目录。默认值:’./’。
sig (int) - 用户注册的退出信号,该信号必须是可捕获可忽略的。当进程收到该信号时,退出训练或者推理。默认值:signal.SIGTERM。
- 异常:
ValueError - save_ckpt 不是bool值 。
ValueError - save_mindir 不是bool值。
ValueError - file_name 不是字符串。
ValueError - directory 不是字符串。
ValueError - sig 不是int值,或者是signal.SIGKILL。
样例:
>>> import numpy as np >>> import mindspore as ms >>> from mindspore import dataset as ds >>> from mindspore import nn >>> >>> # Define the forward net >>> class ForwardNet(nn.Cell): >>> def __init__(self, num_class=10, channel=1): >>> super(ForwardNet, self).__init__() >>> self.param = ms.Parameter(1.0) >>> self.relu = ms.ops.ReLU() >>> >>> def construct(self, x): >>> return self.relu(x + self.param) >>> forward_net = ForwardNet() >>> loss = nn.MAELoss() >>> opt = nn.Momentum(forward_net.trainable_params(), 0.01, 0.9) >>> model = ms.Model(forward_net, loss_fn=loss, optimizer=opt) >>> >>> # Create dataset >>> def generator_multi_column(): >>> i = 0 >>> while i < 1000: >>> i += 1 >>> yield np.ones((1, 32, 32)).astype(np.float32) * 0.01, np.array(1).astype(np.int32) >>> dataset = ds.GeneratorDataset(source=generator_multi_column, column_names=["data", "label"]) >>> dataset = dataset.batch(32, drop_remainder=True) >>> >>> on_request_exit = ms.train.OnRequestExit(file_name='LeNet5') >>> model.train(10, dataset, callbacks=on_request_exit) >>> # The user send the signal SIGTERM to the training process, >>> # the process would save the checkpoint and mindir, and then exit the training process.
- on_eval_begin(run_context)[源代码]
在推理开始时,注册用户传入退出信号的处理程序。
- 参数:
run_context (RunContext) - 包含模型的相关信息。详情请参考
mindspore.train.RunContext
。
- on_eval_end(run_context)[源代码]
在推理结束时,如果接收到退出信号,根据用户配置,保存checkpoint和mindir。
- 参数:
run_context (RunContext) - 包含模型的相关信息。详情请参考
mindspore.train.RunContext
。
- on_eval_step_end(run_context)[源代码]
在推理step结束时,如果接收到退出信号,将 run_context 的 _stop_requested 属性置为True。在本轮推理结束后,退出推理。
- 参数:
run_context (RunContext) - 包含模型的相关信息。详情请参考
mindspore.train.RunContext
。
- on_train_begin(run_context)[源代码]
在训练开始时,注册用户传入退出信号的处理程序。
- 参数:
run_context (RunContext) - 包含模型的相关信息。详情请参考
mindspore.train.RunContext
。
- on_train_end(run_context)[源代码]
在训练结束时,如果接收到退出信号,根据用户配置,保存checkpoint和mindir。
- 参数:
run_context (RunContext) - 包含模型的相关信息。详情请参考
mindspore.train.RunContext
。
- on_train_epoch_end(run_context)[源代码]
在训练epoch结束时,如果接收到退出信号,将 run_context 的 _stop_requested 属性置为True。在本轮训练结束后,退出训练。
- 参数:
run_context (RunContext) - 包含模型的相关信息。详情请参考
mindspore.train.RunContext
。
- on_train_step_end(run_context)[源代码]
在训练step结束时,如果接收到退出信号,将 run_context 的 _stop_requested 属性置为True。在本轮训练结束后,退出训练。
- 参数:
run_context (RunContext) - 包含模型的相关信息。详情请参考
mindspore.train.RunContext
。