mindspore.profiler.tensorboard_trace_handler
- mindspore.profiler.tensorboard_trace_handler(dir_name: str = None, worker_name: str = None, analyse_flag: bool = True, async_mode: bool = False)[源代码]
对动态图模式的每一个step,调用该方法进行在线解析。
- 参数:
dir_name (str, 可选) - 指定保存分析结果的目录路径。默认为:
None
,表示使用默认的保存路径,默认路径为:"./data"
。worker_name (str, 可选) - 指定工程线程名称。默认为:
None
,表示使用默认的工程线程名,默认工程线程名为:"当前操作系统名+进程号"
。analyse_flag (bool, 可选) - 是否使用在线分析。默认为:
True
,表示使用在线分析。async_mode (bool, 可选) - 是否使用异步解析模式。默认值:
False
,表示使用同步解析模式。
样例:
>>> import numpy as np >>> import mindspore >>> import mindspore.dataset as ds >>> from mindspore import context, nn >>> from mindspore.profiler import schedule, tensorboard_trace_handler >>> >>> class Net(nn.Cell): ... def __init__(self): ... super(Net, self).__init__() ... self.fc = nn.Dense(2, 2) ... ... def construct(self, x): ... return self.fc(x) >>> >>> def generator_net(): ... for _ in range(2): ... yield np.ones([2, 2]).astype(np.float32), np.ones([2]).astype(np.int32) >>> >>> def train(test_net): ... optimizer = nn.Momentum(test_net.trainable_params(), 1, 0.9) ... loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True) ... data = ds.GeneratorDataset(generator_net(), ["data", "label"]) ... model = mindspore.train.Model(test_net, loss, optimizer) ... model.train(1, data) >>> >>> if __name__ == '__main__': ... # If the device_target is GPU, set the device_target to "GPU" ... context.set_context(mode=mindspore.GRAPH_MODE) ... mindspore.set_device("Ascend") ... ... # Init Profiler ... experimental_config = mindspore.profiler._ExperimentalConfig( ... profiler_level=ProfilerLevel.Level0, ... aic_metrics=AicoreMetrics.AiCoreNone, ... l2_cache=False, ... mstx=False, ... data_simplification=False, ... export_type=[ExportType.Text]) ... steps = 10 ... net = Net() ... # Note that the Profiler should be initialized before model.train ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU], ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2, ... repeat=1, skip_first=2), ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"), ... profile_memory=False, ... experimental_config=experimental_config) as prof: ... ... # Train Model ... for step in range(steps): ... train(net) ... prof.step()