From aa89fa1f4c05d16cdd85aef9135948d0885252fe Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Thu, 4 Mar 2021 19:51:30 +0100 Subject: [PATCH 001/126] Refactor profilers --- pytorch_lightning/callbacks/progress.py | 3 +- pytorch_lightning/profiler/profilers.py | 148 ++++++------- pytorch_lightning/profiler/pytorch.py | 196 ++++++++---------- .../trainer/connectors/profiler_connector.py | 5 +- pytorch_lightning/trainer/training_loop.py | 2 +- tests/deprecated_api/test_remove_1-5.py | 6 + tests/test_profiler.py | 162 ++++++++++++++- tests/trainer/test_trainer.py | 109 ---------- 8 files changed, 322 insertions(+), 309 deletions(-) diff --git a/pytorch_lightning/callbacks/progress.py b/pytorch_lightning/callbacks/progress.py index 2f133eaccf512..9b960d2553390 100644 --- a/pytorch_lightning/callbacks/progress.py +++ b/pytorch_lightning/callbacks/progress.py @@ -39,8 +39,7 @@ class tqdm(_tqdm): """ - Custom tqdm progressbar where we append 0 to floating points/strings to - prevent the progress bar from flickering + Custom tqdm progressbar where we append 0 to floating points/strings to prevent the progress bar from flickering """ @staticmethod diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 75bcda09e1af7..644aa0e6f6255 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. """Profiler to check if there are any bottlenecks in your code.""" - import cProfile import io import logging @@ -22,7 +21,7 @@ from abc import ABC, abstractmethod from collections import defaultdict from contextlib import contextmanager -from typing import Optional, Union +from typing import Optional import numpy as np @@ -31,22 +30,8 @@ log = logging.getLogger(__name__) -class BaseProfiler(ABC): - """ - If you wish to write a custom profiler, you should inhereit from this class. - """ - - def __init__(self, output_streams: Optional[Union[list, tuple]] = None): - """ - Args: - output_streams: callable - """ - if output_streams: - if not isinstance(output_streams, (list, tuple)): - output_streams = [output_streams] - else: - output_streams = [] - self.write_streams = output_streams +class AbstractProfiler(ABC): + """Specification of a profiler.""" @abstractmethod def start(self, action_name: str) -> None: @@ -56,6 +41,38 @@ def start(self, action_name: str) -> None: def stop(self, action_name: str) -> None: """Defines how to record the duration once an action is complete.""" + @abstractmethod + def summary(self) -> str: + """Create profiler summary in text format.""" + + +class BaseProfiler(AbstractProfiler, ABC): + """ + If you wish to write a custom profiler, you should inherit from this class. + """ + + def __init__(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: + self.output_fname = getattr(self, "output_fname", None) + # the profiler can be used outside of lightning + # that's why we call `on_train_start` manually + self.on_train_start(local_rank=local_rank, log_dir=log_dir) + + def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None): + """ + This function is used by the Trainer to inject local_rank with `DDP` + and `TensorBoardLogger` log_dir in the profiler. + """ + self.local_rank = local_rank + self.log_dir = log_dir + self.prepare_file() + + def prepare_file(self) -> None: + self.output_file = None + if self.output_fname: + fs = get_filesystem(self.output_fname) + self.output_file = fs.open(self.output_fname, "w") + self.write_streams = [self.output_file.write] if self.output_file else [log.info] + @contextmanager def profile(self, action_name: str) -> None: """ @@ -91,13 +108,23 @@ def describe(self) -> None: """Logs a profile report after the conclusion of the training run.""" for write in self.write_streams: write(self.summary()) + if self.output_file: + self.output_file.flush() - @abstractmethod - def summary(self) -> str: - """Create profiler summary in text format.""" - - def on_train_start(self, local_rank: Optional[int] = None): - self.local_rank = local_rank + def stats_to_str(self, stats: dict) -> str: + output = ["Profiler Report"] + for action, value in stats.items(): + header = f"Profile stats for: {action}" + if getattr(self, "local_rank", None) is not None: + header += f" rank: {self.local_rank}" + output.append(header) + output.append(value) + return os.linesep.join(output) + + def __del__(self) -> None: + """Close profiler's stream.""" + if self.output_file: + self.output_file.close() class PassThroughProfiler(BaseProfiler): @@ -125,7 +152,7 @@ class SimpleProfiler(BaseProfiler): the mean duration of each action and the total time spent over the entire training run. """ - def __init__(self, output_filename: Optional[str] = None, extended=True): + def __init__(self, output_filename: Optional[str] = None, extended: bool = True): """ Args: output_filename: optionally save profile results to file instead of printing @@ -136,19 +163,12 @@ def __init__(self, output_filename: Optional[str] = None, extended=True): If you attempt to start an action which has already started, or if you attempt to stop recording an action which was never started. """ + self.output_fname = output_filename self.current_actions = {} self.recorded_durations = defaultdict(list) self.extended = extended - - self.output_fname = output_filename - self.output_file = None - if self.output_fname: - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") - - streaming_out = [self.output_file.write] if self.output_file else [log.info] + super().__init__() self.start_time = time.monotonic() - super().__init__(output_streams=streaming_out) def start(self, action_name: str) -> None: if action_name in self.current_actions: @@ -170,7 +190,8 @@ def make_report(self): return report, total_duration def summary(self) -> str: - output_string = "\n\nProfiler Report\n" + sep = os.linesep + output_string = f"Profiler Report{sep}" if self.extended: @@ -178,16 +199,16 @@ def summary(self) -> str: max_key = np.max([len(k) for k in self.recorded_durations.keys()]) def log_row(action, mean, num_calls, total, per): - row = f"{os.linesep}{action:<{max_key}s}\t| {mean:<15}\t|" + row = f"{sep}{action:<{max_key}s}\t| {mean:<15}\t|" row += f"{num_calls:<15}\t| {total:<15}\t| {per:<15}\t|" return row output_string += log_row("Action", "Mean duration (s)", "Num calls", "Total time (s)", "Percentage %") output_string_len = len(output_string) - output_string += f"{os.linesep}{'-' * output_string_len}" + output_string += f"{sep}{'-' * output_string_len}" report, total_duration = self.make_report() output_string += log_row("Total", "-", "_", f"{total_duration:.5}", "100 %") - output_string += f"{os.linesep}{'-' * output_string_len}" + output_string += f"{sep}{'-' * output_string_len}" for action, durations, duration_per in report: output_string += log_row( action, @@ -199,27 +220,16 @@ def log_row(action, mean, num_calls, total, per): else: def log_row(action, mean, total): - return f"{os.linesep}{action:<20s}\t| {mean:<15}\t| {total:<15}" + return f"{sep}{action:<20s}\t| {mean:<15}\t| {total:<15}" output_string += log_row("Action", "Mean duration (s)", "Total time (s)") - output_string += f"{os.linesep}{'-' * 65}" + output_string += f"{sep}{'-' * 65}" for action, durations in self.recorded_durations.items(): output_string += log_row(action, f"{np.mean(durations):.5}", f"{np.sum(durations):.5}") - output_string += os.linesep + output_string += sep return output_string - def describe(self): - """Logs a profile report after the conclusion of the training run.""" - super().describe() - if self.output_file: - self.output_file.flush() - - def __del__(self): - """Close profiler's stream.""" - if self.output_file: - self.output_file.close() - class AdvancedProfiler(BaseProfiler): """ @@ -241,17 +251,10 @@ def __init__(self, output_filename: Optional[str] = None, line_count_restriction ValueError: If you attempt to stop recording an action which was never started. """ + self.output_fname = output_filename self.profiled_actions = {} self.line_count_restriction = line_count_restriction - - self.output_fname = output_filename - self.output_file = None - if self.output_fname: - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") - - streaming_out = [self.output_file.write] if self.output_file else [log.info] - super().__init__(output_streams=streaming_out) + super().__init__() def start(self, action_name: str) -> None: if action_name not in self.profiled_actions: @@ -261,9 +264,7 @@ def start(self, action_name: str) -> None: def stop(self, action_name: str) -> None: pr = self.profiled_actions.get(action_name) if pr is None: - raise ValueError( # pragma: no-cover - f"Attempting to stop recording an action ({action_name}) which was never started." - ) + raise ValueError(f"Attempting to stop recording an action ({action_name}) which was never started.") pr.disable() def summary(self) -> str: @@ -273,21 +274,4 @@ def summary(self) -> str: ps = pstats.Stats(pr, stream=s).strip_dirs().sort_stats('cumulative') ps.print_stats(self.line_count_restriction) recorded_stats[action_name] = s.getvalue() - - # log to standard out - output_string = f"{os.linesep}Profiler Report{os.linesep}" - for action, stats in recorded_stats.items(): - output_string += f"{os.linesep}Profile stats for: {action}{os.linesep}{stats}" - - return output_string - - def describe(self): - """Logs a profile report after the conclusion of the training run.""" - super().describe() - if self.output_file: - self.output_file.flush() - - def __del__(self): - """Close profiler's stream.""" - if self.output_file: - self.output_file.close() + return self.stats_to_str(recorded_stats) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 4ccb88883260e..ed973501b3247 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -12,17 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. """Profiler to check if there are any bottlenecks in your code.""" - import inspect import logging import os -from typing import List, Optional +from typing import Dict, List, Optional, Union import torch +from torch.autograd.profiler import EventList, FunctionEvent from pytorch_lightning.profiler.profilers import BaseProfiler from pytorch_lightning.utilities import rank_zero_only -from pytorch_lightning.utilities.cloud_io import get_filesystem from pytorch_lightning.utilities.distributed import rank_zero_warn from pytorch_lightning.utilities.exceptions import MisconfigurationException @@ -31,7 +30,7 @@ class PyTorchProfiler(BaseProfiler): - PROFILED_FUNCTIONS = ("training_step_and_backward", "validation_step", "test_step") + RECORD_FUNCTIONS = ("training_step_and_backward", "training_step", "backward", "validation_step", "test_step") AVAILABLE_SORT_KEYS = ( "cpu_time", "cuda_time", @@ -48,27 +47,26 @@ def __init__( self, output_filename: Optional[str] = None, enabled: bool = True, + use_cpu: bool = True, use_cuda: bool = False, record_shapes: bool = False, profile_memory: bool = False, group_by_input_shapes: bool = False, with_stack: bool = False, - use_kineto: bool = False, - use_cpu: bool = True, emit_nvtx: bool = False, export_to_chrome: bool = False, - path_to_export_trace: str = None, + path_to_export_trace: Optional[str] = None, row_limit: int = 20, sort_by_key: Optional[str] = None, - profiled_functions: Optional[List] = None, + record_functions: Optional[List[str]] = None, local_rank: Optional[int] = None, - ): + profiled_functions: Optional[List[str]] = None, + ) -> None: """ This profiler uses PyTorch's Autograd Profiler and lets you inspect the cost of different operators inside your model - both on the CPU and GPU Args: - output_filename: optionally save profile results to file instead of printing to std out when training is finished. When using ``ddp``, each rank will stream the profiled operation to their own file @@ -76,21 +74,18 @@ def __init__( enabled: Setting this to False makes this context manager a no-op. + use_cpu: record events on the CPU + use_cuda: Enables timing of CUDA events as well using the cudaEvent API. Adds approximately 4us of overhead to each tensor operation. record_shapes: If shapes recording is set, information about input dimensions will be collected. - profile_memory: Whether to report memory usage, default: True (Introduced in PyTorch 1.6.0) + profile_memory: Whether to report memory usage group_by_input_shapes: Include operator input shapes and group calls by shape. - with_stack: record source information (file and line number) for the ops (Introduced in PyTorch 1.7.0) - - use_kineto: experimental support for Kineto profiler (Introduced in PyTorch 1.8.0) - - use_cpu: use_kineto=True and can be used to lower the overhead - for GPU-only profiling (Introduced in PyTorch 1.8.0) + with_stack: record source information (file and line number) for the ops emit_nvtx: Context manager that makes every autograd operation emit an NVTX range Run:: @@ -102,18 +97,18 @@ def __init__( nvvp trace_name.prof torch.autograd.profiler.load_nvprof(path) - export_to_chrome: Wether to export the sequence of profiled operators for Chrome. + export_to_chrome: Whether to export the sequence of profiled operators for Chrome. It will generate a ``.json`` file which can be read by Chrome. path_to_export_trace: Directory path to export ``.json`` traces when using ``export_to_chrome=True``. By default, it will be save where the file being is being run. - row_limit: Limit the number of rows in a table, `0` is a special value that + row_limit: Limit the number of rows in a table, ``0`` is a special value that removes the limit completely. - sort_by_key: Keys to sort out profiled table + sort_by_key: Keys to sort out profiled table. - profiled_functions: list of profiled functions which will create a context manager on. + record_functions: list of profiled functions which will create a context manager on. Any other will be pass through. local_rank: When running in distributed setting, local_rank is used for each process @@ -126,91 +121,99 @@ def __init__( ValueError: If you attempt to stop recording an action which was never started. """ + if output_filename is not None and not output_filename.endswith(".txt"): + raise MisconfigurationException("`output_filename` should be a `.txt` file.") + + record_functions = self.__deprecation_check(profiled_functions, record_functions) - self.profiled_actions = {} + self.output_fname = output_filename self.enabled = enabled - self.profiled_functions = profiled_functions or self.PROFILED_FUNCTIONS + self.record_functions = record_functions or self.RECORD_FUNCTIONS + self.use_cpu = use_cpu self.use_cuda = use_cuda self.record_shapes = record_shapes self.profile_memory = profile_memory self.sort_by_key = sort_by_key or ("cuda_time_total" if self.use_cuda else "cpu_time_total") self.with_stack = with_stack self.group_by_input_shapes = group_by_input_shapes and record_shapes - self.use_kineto = use_kineto - self.use_cpu = use_cpu self.row_limit = row_limit self.emit_nvtx = emit_nvtx self.export_to_chrome = export_to_chrome self.path_to_export_trace = path_to_export_trace - if export_to_chrome and path_to_export_trace is None: + if self.export_to_chrome and self.path_to_export_trace is None: rank_zero_warn( - "The exported trace would be save locally as `path_to_export_trace` is empty." + "The exported trace would be saved locally as `path_to_export_trace` is None." " Note: Each functions will generate its own traced file." ) if self.sort_by_key not in self.AVAILABLE_SORT_KEYS: raise MisconfigurationException( - f"Found sort_by_key: {sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " + f"Found sort_by_key: {self.sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - self.profiled_actions = {} + self.profiled_actions: Dict[str, Union[FunctionEvent, EventList]] = {} self.context_names = {} self.running_stack = [] self.profiler = None - self.output_fname = output_filename - self.output_file = None - if local_rank is not None: - self.on_train_start(local_rank=local_rank) - self.on_train_start = super().on_train_start - - def on_train_start(self, local_rank: Optional[str] = None): - self.local_rank = local_rank - - # when logging to `log.info`, only perform profiling on rank 0 - if local_rank != 0 and self.output_fname is None: - self.wrap_functions_into_rank_zero_only() + super().__init__(local_rank=local_rank) - if self.output_fname: - if local_rank is not None: - if '.txt' not in self.output_fname: - raise MisconfigurationException("Log file should be .txt file.") + def __deprecation_check(self, profiled_functions: Optional[List[str]], + record_functions: Optional[List[str]]) -> Optional[List[str]]: + if profiled_functions is not None: + rank_zero_warn( + "`PyTorchProfiler.profiled_functions` has been renamed to" + " `record_functions` in v1.3 and will be removed in v1.5", DeprecationWarning + ) + if record_functions is None: + record_functions = profiled_functions + else: + raise MisconfigurationException( + "You set `PytorchProfiler.profiled_functions` and `PyTorchProfiler.record_functions`." + " Please use only the later." + ) + return record_functions - self.output_fname = self.output_fname.replace(".txt", f"_{self.local_rank}.txt") + def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: + super().on_train_start(local_rank=local_rank, log_dir=log_dir) - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") + # if the user didn't `path_to_export_trace`, + # set it as TensorBoardLogger log_dir if exists + if self.path_to_export_trace is None: + self.path_to_export_trace = log_dir - streaming_out = [self.output_file.write] if self.output_file else [log.info] - super().__init__(output_streams=streaming_out) + # when logging to `log.info`, only perform profiling on rank 0 + if local_rank is not None and local_rank > 0 and self.output_fname is None: + self._rank_zero_only_wrap() - def wrap_functions_into_rank_zero_only(self): + def _rank_zero_only_wrap(self) -> None: self.start = rank_zero_only(self.start) self.stop = rank_zero_only(self.stop) self.summary = rank_zero_only(self.summary) self.describe = rank_zero_only(self.describe) def start(self, action_name: str) -> None: - if action_name not in self.profiled_functions: + if action_name not in self.record_functions: return if len(self.running_stack) > 0: - self._stop(self.running_stack[-1]) + self._stop() + self.running_stack.append(action_name) self.context_names[action_name] = "/".join(self.running_stack) - self._start(action_name) + self._start() - def _start(self, action_name: str) -> None: + def _start(self) -> None: if self.emit_nvtx: - self._create_profiler(action_name, torch.cuda.profiler.profile, enter=False) - self._create_profiler(action_name, torch.autograd.profiler.emit_nvtx) + self._create_profiler(torch.cuda.profiler.profile, enter=False) + self._create_profiler(torch.autograd.profiler.emit_nvtx) else: - self._create_profiler(action_name, torch.autograd.profiler.profile) + self._create_profiler(torch.autograd.profiler.profile) - def _create_profiler(self, action_name, profiler, enter=True): + def _create_profiler(self, profiler, enter=True) -> None: init_args = inspect.signature(profiler.__init__).parameters profiler_args = {k: v for k, v in vars(self).items() if k in init_args} pr = profiler(**profiler_args) @@ -218,42 +221,41 @@ def _create_profiler(self, action_name, profiler, enter=True): pr = pr.__enter__() self.profiler = pr - def _stop(self, action_name: str) -> None: + def _stop(self) -> None: if self.profiler is None: return - self.profiler.__exit__(exc_type=None, exc_val=None, exc_tb=None) + self.profiler.__exit__(None, None, None) - function_events = self.profiler.function_events - self.profiler = None - for name in self.running_stack: - if name not in self.profiled_actions: - self.profiled_actions[name] = function_events - else: - self.profiled_actions[name] += function_events + events: EventList = self.profiler.function_events + if events is not None: + for name in self.running_stack: + if name not in self.profiled_actions: + self.profiled_actions[name] = events + else: + self.profiled_actions[name] += events def stop(self, action_name: str) -> None: - if action_name not in self.profiled_functions: + if action_name not in self.record_functions: return if len(self.running_stack) == 0 or self.running_stack[-1] != action_name: - raise ValueError( # pragma: no-cover - f"Attempting to stop recording an action ({action_name}) which was never started." - ) - self._stop(action_name) + raise ValueError(f"Attempting to stop recording an action ({action_name}) which was never started.") + + self._stop() + + self.profiler = None self.running_stack.pop() # restore running profiler if len(self.running_stack) > 0: - self._start(self.running_stack[-1]) + self._start() def summary(self) -> str: - recorded_stats = {} - output_string = '' - local_rank = '0' if self.local_rank is None else self.local_rank - - if not self.enabled: - return output_string + if not self.enabled or self.emit_nvtx: + return "" + local_rank = 0 if self.local_rank is None else self.local_rank + recorded_stats = {} for action_name, function_events in self.profiled_actions.items(): # next line is a workaround for a pytorch issue (fixed on master, still present @@ -263,32 +265,14 @@ def summary(self) -> str: if self.export_to_chrome: filename = f"{action_name}_{local_rank}_trace.json" - path_to_trace = filename if self.path_to_export_trace is None \ - else os.path.join(self.path_to_export_trace, filename) + path_to_trace = ( + filename + if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) + ) function_events.export_chrome_trace(path_to_trace) - if self.emit_nvtx: - return output_string + data = function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) + table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) + recorded_stats[action_name] = table - else: - data = function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) - table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) - recorded_stats[action_name] = table - - # log to standard out - output_string = f"{os.linesep}Profiler Report{os.linesep}" - for action, stats in recorded_stats.items(): - output_string += (f"{os.linesep}Profile stats for: {action} rank: {local_rank} {os.linesep}{stats}") - - return output_string - - def describe(self): - """Logs a profile report after the conclusion of the training run.""" - super().describe() - if self.output_file: - self.output_file.flush() - - def __del__(self): - """Close profiler's stream.""" - if self.output_file: - self.output_file.close() + return self.stats_to_str(recorded_stats) diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 98d65c1285ff7..7639926424090 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -55,5 +55,6 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): self.trainer.profiler = profiler or PassThroughProfiler() def on_train_start(self, trainer): - local_rank = trainer.local_rank if trainer.world_size > 1 else None - self.trainer.profiler.on_train_start(local_rank) + if not isinstance(trainer.profiler, PassThroughProfiler): + local_rank = trainer.local_rank if trainer.world_size > 1 else None + self.trainer.profiler.on_train_start(local_rank=local_rank, log_dir=self.trainer.log_dir) diff --git a/pytorch_lightning/trainer/training_loop.py b/pytorch_lightning/trainer/training_loop.py index 97814bb912fbe..39548b5ed64c5 100644 --- a/pytorch_lightning/trainer/training_loop.py +++ b/pytorch_lightning/trainer/training_loop.py @@ -749,7 +749,7 @@ def training_step_and_backward(self, split_batch, batch_idx, opt_idx, optimizer, # backward pass if result is not None: - with self.trainer.profiler.profile("model_backward"): + with self.trainer.profiler.profile("backward"): self.backward(result, optimizer, opt_idx) # hook - call this hook only diff --git a/tests/deprecated_api/test_remove_1-5.py b/tests/deprecated_api/test_remove_1-5.py index cb1d461414603..479db3a4ec6f9 100644 --- a/tests/deprecated_api/test_remove_1-5.py +++ b/tests/deprecated_api/test_remove_1-5.py @@ -19,6 +19,7 @@ from pytorch_lightning import Callback, Trainer from pytorch_lightning.loggers import WandbLogger +from pytorch_lightning.profiler import PyTorchProfiler from tests.helpers import BoringModel from tests.helpers.utils import no_warning_call @@ -68,3 +69,8 @@ def on_save_checkpoint(self, *args): trainer.callbacks = [NewSignature(), ValidSignature1(), ValidSignature2()] with no_warning_call(DeprecationWarning): trainer.save_checkpoint(filepath) + + +def test_v1_5_0_legacy_profiler_argument(): + with pytest.deprecated_call(match="renamed to `record_functions` in v1.3"): + PyTorchProfiler(profiled_functions=[]) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 667e153a9edd4..976d3ba9dafcc 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -14,12 +14,19 @@ import logging import os import time +from distutils.version import LooseVersion from pathlib import Path import numpy as np import pytest +import torch -from pytorch_lightning.profiler import AdvancedProfiler, SimpleProfiler +from pytorch_lightning import Trainer +from pytorch_lightning.loggers import TensorBoardLogger +from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler +from pytorch_lightning.utilities.exceptions import MisconfigurationException +from tests.helpers import BoringModel +from tests.helpers.runif import RunIf PROFILER_OVERHEAD_MAX_TOLERANCE = 0.0005 @@ -44,12 +51,6 @@ def simple_profiler(): return profiler -@pytest.fixture -def advanced_profiler(tmpdir): - profiler = AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) - return profiler - - @pytest.mark.parametrize(["action", "expected"], [ pytest.param("a", [3, 1]), pytest.param("b", [2]), @@ -116,6 +117,12 @@ def test_simple_profiler_value_errors(simple_profiler): simple_profiler.stop(action) +@pytest.fixture +def advanced_profiler(tmpdir): + profiler = AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) + return profiler + + @pytest.mark.parametrize(["action", "expected"], [ pytest.param("a", [3, 1]), pytest.param("b", [2]), @@ -187,3 +194,144 @@ def test_advanced_profiler_value_errors(advanced_profiler): advanced_profiler.start(action) advanced_profiler.stop(action) + + +@pytest.fixture +def pytorch_profiler(tmpdir): + profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) + return profiler + + +def test_pytorch_profiler_describe(pytorch_profiler): + """Ensure the profiler won't fail when reporting the summary.""" + with pytorch_profiler.profile("test_step"): + pass + + # log to stdout and print to file + pytorch_profiler.describe() + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 + + +def test_pytorch_profiler_value_errors(pytorch_profiler): + """Ensure errors are raised where expected.""" + + action = "test_step" + with pytest.raises(ValueError): + pytorch_profiler.stop(action) + + pytorch_profiler.start(action) + pytorch_profiler.stop(action) + + with pytest.raises(MisconfigurationException, match="profiled_functions` and `PyTorchProfiler.record"): + PyTorchProfiler(profiled_functions=[], record_functions=[]) + + +@RunIf(min_gpus=2, special=True) +def test_pytorch_profiler_trainer_ddp(tmpdir): + """Ensure that the profiler can be given to the training and default step are properly recorded. """ + + output_filename = os.path.join(tmpdir, "profiler.txt") + + profiler = PyTorchProfiler(output_filename=output_filename) + + model = BoringModel() + trainer = Trainer( + max_epochs=1, + default_root_dir=tmpdir, + limit_train_batches=6, + limit_val_batches=6, + profiler=profiler, + accelerator="ddp", + gpus=2, + logger=TensorBoardLogger(tmpdir) + ) + trainer.fit(model) + + assert len(profiler.summary()) > 0 + profiler.describe() + data = Path(profiler.output_fname).read_text() + assert len(data) > 0 + + +@pytest.mark.parametrize("use_output_filename", [True]) +def test_pytorch_profiler_trainer(tmpdir, use_output_filename): + """Ensure that the profiler can be given to the training and default step are properly recorded. """ + + if use_output_filename: + output_filename = os.path.join(tmpdir, "profiler.txt") + else: + output_filename = None + + profiler = PyTorchProfiler(output_filename=output_filename) + + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + max_epochs=1, + limit_train_batches=1, + limit_val_batches=1, + profiler=profiler, + ) + trainer.fit(model) + + enabled = use_output_filename or not use_output_filename and profiler.local_rank == 0 + + if enabled: + assert len(profiler.summary()) > 0 + expected = {'validation_step', 'training_step_and_backward', 'training_step', 'backward'} + assert set(profiler.profiled_actions.keys()) == expected + else: + assert profiler.summary() is None + assert set(profiler.profiled_actions.keys()) == set() + + if use_output_filename: + profiler.describe() + data = Path(profiler.output_fname).read_text() + assert len(data) > 0 + + +def test_pytorch_profiler_nested(tmpdir): + """Ensure that the profiler handles nested context""" + + pytorch_profiler = PyTorchProfiler( + record_functions=["a", "b", "c"], + use_cuda=torch.cuda.is_available(), + output_filename=os.path.join(tmpdir, "profiler.txt") + ) + + with pytorch_profiler.profile("a"): + a = torch.ones(42) + with pytorch_profiler.profile("b"): + b = torch.zeros(42) + with pytorch_profiler.profile("c"): + _ = a + b + + pa = pytorch_profiler.profiled_actions + + # From PyTorch 1.8.0, less operation are being traced. + if LooseVersion(torch.__version__) >= LooseVersion("1.8.0"): + expected_ = { + 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'add'], + 'b': ['zeros', 'empty', 'zero_'], + 'c': ['add'], + } + # From PyTorch 1.6.0, more operation are being traced. + elif LooseVersion(torch.__version__) >= LooseVersion("1.6.0"): + expected_ = { + 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'fill_', 'add', 'empty'], + 'b': ['zeros', 'empty', 'zero_', 'fill_'], + 'c': ['add', 'empty'], + } + else: + expected_ = { + 'a': ['add'], + 'b': [], + 'c': ['add'], + } + + for n in ('a', 'b', 'c'): + pa[n] = [e.name for e in pa[n]] + if LooseVersion(torch.__version__) >= LooseVersion("1.7.1"): + pa[n] = [e.replace("aten::", "") for e in pa[n]] + assert pa[n] == expected_[n] diff --git a/tests/trainer/test_trainer.py b/tests/trainer/test_trainer.py index 867afc5eab886..63143cbacb455 100644 --- a/tests/trainer/test_trainer.py +++ b/tests/trainer/test_trainer.py @@ -17,7 +17,6 @@ import sys from argparse import Namespace from copy import deepcopy -from distutils.version import LooseVersion from pathlib import Path from unittest.mock import ANY, call, patch @@ -43,12 +42,6 @@ from tests.helpers.runif import RunIf -@pytest.fixture -def pytorch_profiler(tmpdir): - profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) - return profiler - - @pytest.mark.parametrize("url_ckpt", [True, False]) def test_no_val_module(monkeypatch, tmpdir, tmpdir_server, url_ckpt): """Tests use case where trainer saves the model, and user loads it from tags independently.""" @@ -1448,108 +1441,6 @@ def test_trainer_predict_ddp_cpu(tmpdir): predict(tmpdir, "ddp_cpu", 0, 2) -def test_pytorch_profiler_describe(pytorch_profiler): - """Ensure the profiler won't fail when reporting the summary.""" - with pytorch_profiler.profile("test_step"): - pass - - # log to stdout and print to file - pytorch_profiler.describe() - data = Path(pytorch_profiler.output_fname).read_text() - assert len(data) > 0 - - -def test_pytorch_profiler_value_errors(pytorch_profiler): - """Ensure errors are raised where expected.""" - - action = "test_step" - with pytest.raises(ValueError): - pytorch_profiler.stop(action) - - pytorch_profiler.start(action) - pytorch_profiler.stop(action) - - -@RunIf(min_gpus=2, special=True) -@pytest.mark.parametrize("use_output_filename", [False, True]) -def test_pytorch_profiler_trainer_ddp(tmpdir, use_output_filename): - """Ensure that the profiler can be given to the training and default step are properly recorded. """ - - if use_output_filename: - output_filename = os.path.join(tmpdir, "profiler.txt") - else: - output_filename = None - - profiler = PyTorchProfiler(output_filename=output_filename) - - model = BoringModel() - trainer = Trainer( - fast_dev_run=True, - profiler=profiler, - accelerator="ddp", - gpus=2, - ) - trainer.fit(model) - - enabled = use_output_filename or not use_output_filename and profiler.local_rank == 0 - - if enabled: - assert len(profiler.summary()) > 0 - assert set(profiler.profiled_actions.keys()) == {'training_step_and_backward', 'validation_step'} - else: - assert profiler.summary() is None - assert set(profiler.profiled_actions.keys()) == set() - - if use_output_filename: - profiler.describe() - data = Path(profiler.output_fname).read_text() - assert len(data) > 0 - - -def test_pytorch_profiler_nested(tmpdir): - """Ensure that the profiler handles nested context""" - - pytorch_profiler = PyTorchProfiler( - profiled_functions=["a", "b", "c"], use_cuda=False, output_filename=os.path.join(tmpdir, "profiler.txt") - ) - - with pytorch_profiler.profile("a"): - a = torch.ones(42) - with pytorch_profiler.profile("b"): - b = torch.zeros(42) - with pytorch_profiler.profile("c"): - _ = a + b - - pa = pytorch_profiler.profiled_actions - - # From PyTorch 1.8.0, less operation are being traced. - if LooseVersion(torch.__version__) >= LooseVersion("1.8.0"): - expected_ = { - 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'add'], - 'b': ['zeros', 'empty', 'zero_'], - 'c': ['add'], - } - # From PyTorch 1.6.0, more operation are being traced. - elif LooseVersion(torch.__version__) >= LooseVersion("1.6.0"): - expected_ = { - 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'fill_', 'add', 'empty'], - 'b': ['zeros', 'empty', 'zero_', 'fill_'], - 'c': ['add', 'empty'], - } - else: - expected_ = { - 'a': ['add'], - 'b': [], - 'c': ['add'], - } - - for n in ('a', 'b', 'c'): - pa[n] = [e.name for e in pa[n]] - if LooseVersion(torch.__version__) >= LooseVersion("1.7.1"): - pa[n] = [e.replace("aten::", "") for e in pa[n]] - assert pa[n] == expected_[n] - - @pytest.mark.parametrize( ["limit_train_batches", "global_step", "num_training_batches", "current_epoch", "should_train"], [(0.2, 0, 0, 0, False), (0.5, 10, 2, 4, True)], From b66f1f64a25b3e17f258097d004205329573b5fc Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Fri, 5 Mar 2021 19:35:45 +0100 Subject: [PATCH 002/126] Update PassThrough --- pytorch_lightning/profiler/profilers.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 644aa0e6f6255..fd4bcf8732932 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -132,10 +132,6 @@ class PassThroughProfiler(BaseProfiler): This class should be used when you don't want the (small) overhead of profiling. The Trainer uses this class by default. """ - - def __init__(self): - super().__init__(output_streams=None) - def start(self, action_name: str) -> None: pass From d388d80941eb4ebe65f694bf7aab60a58b47a95b Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Sat, 6 Mar 2021 14:42:05 +0100 Subject: [PATCH 003/126] WIP - This is broken and will change --- pytorch_lightning/profiler/pytorch.py | 190 +++++++++++++------------- tests/test_profiler.py | 16 +-- 2 files changed, 105 insertions(+), 101 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index ed973501b3247..98ab37e02f915 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -15,10 +15,10 @@ import inspect import logging import os -from typing import Dict, List, Optional, Union +from typing import List, Optional, Union, Type, Any, Tuple, Dict import torch -from torch.autograd.profiler import EventList, FunctionEvent +from torch.autograd.profiler import record_function, EventList, parse_event_records from pytorch_lightning.profiler.profilers import BaseProfiler from pytorch_lightning.utilities import rank_zero_only @@ -27,6 +27,8 @@ log = logging.getLogger(__name__) +_PROFILER = Union[torch.autograd.profiler.profile, torch.cuda.profiler.profile, torch.autograd.profiler.emit_nvtx] + class PyTorchProfiler(BaseProfiler): @@ -46,13 +48,7 @@ class PyTorchProfiler(BaseProfiler): def __init__( self, output_filename: Optional[str] = None, - enabled: bool = True, - use_cpu: bool = True, - use_cuda: bool = False, - record_shapes: bool = False, - profile_memory: bool = False, group_by_input_shapes: bool = False, - with_stack: bool = False, emit_nvtx: bool = False, export_to_chrome: bool = False, path_to_export_trace: Optional[str] = None, @@ -61,6 +57,7 @@ def __init__( record_functions: Optional[List[str]] = None, local_rank: Optional[int] = None, profiled_functions: Optional[List[str]] = None, + **profiler_kwargs: Any, ) -> None: """ This profiler uses PyTorch's Autograd Profiler and lets you inspect the cost of @@ -72,21 +69,8 @@ def __init__( each rank will stream the profiled operation to their own file with the extension ``_{rank}.txt`` - enabled: Setting this to False makes this context manager a no-op. - - use_cpu: record events on the CPU - - use_cuda: Enables timing of CUDA events as well using the cudaEvent API. - Adds approximately 4us of overhead to each tensor operation. - - record_shapes: If shapes recording is set, information about input dimensions will be collected. - - profile_memory: Whether to report memory usage - group_by_input_shapes: Include operator input shapes and group calls by shape. - with_stack: record source information (file and line number) for the ops - emit_nvtx: Context manager that makes every autograd operation emit an NVTX range Run:: @@ -106,7 +90,11 @@ def __init__( row_limit: Limit the number of rows in a table, ``0`` is a special value that removes the limit completely. - sort_by_key: Keys to sort out profiled table. + sort_by_key: Attribute used to sort entries. By default + they are printed in the same order as they were registered. + Valid keys include: ``cpu_time``, ``cuda_time``, ``cpu_time_total``, + ``cuda_time_total``, ``cpu_memory_usage``, ``cuda_memory_usage``, + ``self_cpu_memory_usage``, ``self_cuda_memory_usage``, ``count``. record_functions: list of profiled functions which will create a context manager on. Any other will be pass through. @@ -114,6 +102,8 @@ def __init__( local_rank: When running in distributed setting, local_rank is used for each process to write to their own file if `output_fname` is provided. + profiler_kwargs: Keyword arguments for the PyTorch profiler. This depends on your PyTorch version + Raises: MisconfigurationException: If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``, or @@ -127,19 +117,14 @@ def __init__( record_functions = self.__deprecation_check(profiled_functions, record_functions) self.output_fname = output_filename - self.enabled = enabled self.record_functions = record_functions or self.RECORD_FUNCTIONS - self.use_cpu = use_cpu - self.use_cuda = use_cuda - self.record_shapes = record_shapes - self.profile_memory = profile_memory - self.sort_by_key = sort_by_key or ("cuda_time_total" if self.use_cuda else "cpu_time_total") - self.with_stack = with_stack - self.group_by_input_shapes = group_by_input_shapes and record_shapes + self.sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" + self.group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) self.row_limit = row_limit self.emit_nvtx = emit_nvtx self.export_to_chrome = export_to_chrome self.path_to_export_trace = path_to_export_trace + self.profiler_kwargs = profiler_kwargs if self.export_to_chrome and self.path_to_export_trace is None: rank_zero_warn( @@ -152,15 +137,17 @@ def __init__( f"Found sort_by_key: {self.sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - self.profiled_actions: Dict[str, Union[FunctionEvent, EventList]] = {} - self.context_names = {} - self.running_stack = [] - self.profiler = None + self.stack: List[Tuple[str, record_function]] = [] + self.profiler: Optional[_PROFILER] = None + self.function_events: Dict[str, EventList] = {} super().__init__(local_rank=local_rank) - def __deprecation_check(self, profiled_functions: Optional[List[str]], - record_functions: Optional[List[str]]) -> Optional[List[str]]: + def __deprecation_check( + self, + profiled_functions: Optional[List[str]], + record_functions: Optional[List[str]] + ) -> Optional[List[str]]: if profiled_functions is not None: rank_zero_warn( "`PyTorchProfiler.profiled_functions` has been renamed to" @@ -197,82 +184,101 @@ def start(self, action_name: str) -> None: if action_name not in self.record_functions: return - if len(self.running_stack) > 0: - self._stop() - - self.running_stack.append(action_name) + if self.profiler is None: + self._create_profilers() - self.context_names[action_name] = "/".join(self.running_stack) + self.profiler.__enter__() + if self._parent_profiler is not None: + self._parent_profiler.__enter__() - self._start() + recording = record_function(action_name) + self.stack.append((action_name, recording)) + recording.__enter__() - def _start(self) -> None: + def _create_profilers(self) -> None: if self.emit_nvtx: - self._create_profiler(torch.cuda.profiler.profile, enter=False) - self._create_profiler(torch.autograd.profiler.emit_nvtx) + self._parent_profiler = self._create_profiler(torch.cuda.profiler.profile) + self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) else: - self._create_profiler(torch.autograd.profiler.profile) + self._parent_profiler = None + self.profiler = self._create_profiler(torch.autograd.profiler.profile) - def _create_profiler(self, profiler, enter=True) -> None: - init_args = inspect.signature(profiler.__init__).parameters - profiler_args = {k: v for k, v in vars(self).items() if k in init_args} - pr = profiler(**profiler_args) - if enter: - pr = pr.__enter__() - self.profiler = pr + def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: + init_parameters = inspect.signature(profiler.__init__).parameters + kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} + return profiler(**kwargs) - def _stop(self) -> None: - if self.profiler is None: + def stop(self, action_name: str) -> None: + if self.profiler is None or action_name not in self.record_functions: return - self.profiler.__exit__(None, None, None) + if not self.stack or self.stack[-1][0] != action_name: + raise ValueError(f"Attempting to stop recording an action ({action_name}) which was never started.") - events: EventList = self.profiler.function_events - if events is not None: - for name in self.running_stack: - if name not in self.profiled_actions: - self.profiled_actions[name] = events - else: - self.profiled_actions[name] += events + action_name, recording = self.stack.pop() + recording.__exit__(None, None, None) - def stop(self, action_name: str) -> None: - if action_name not in self.record_functions: - return + self.function_events[action_name] = self.thing() + self.profiler.function_events = None - if len(self.running_stack) == 0 or self.running_stack[-1] != action_name: - raise ValueError(f"Attempting to stop recording an action ({action_name}) which was never started.") + if not self.stack: + self.profiler.__exit__(None, None, None) + if self._parent_profiler is not None: + self._parent_profiler.__exit__(None, None, None) + + def thing(self): + """TODO: Adapted from ...""" + profiler = self.profiler + kind = torch.autograd.ProfilerState.CUDA if profiler.use_cuda else torch.autograd.ProfilerState.CPU + config = torch.autograd.ProfilerConfig( + kind, + profiler.record_shapes, + profiler.profile_memory, + profiler.with_stack + ) - self._stop() + records = torch.autograd._disable_profiler() - self.profiler = None - self.running_stack.pop() - # restore running profiler - if len(self.running_stack) > 0: - self._start() + function_events = EventList( + parse_event_records(records), + use_cuda=profiler.use_cuda, + profile_memory=profiler.profile_memory + ) + if profiler.with_stack: + function_events.set_backward_stacktraces() + + torch.autograd._enable_profiler(config) + + return function_events def summary(self) -> str: - if not self.enabled or self.emit_nvtx: + if not self.profiler_kwargs.get("enabled", True) or self.emit_nvtx: return "" local_rank = 0 if self.local_rank is None else self.local_rank recorded_stats = {} - for action_name, function_events in self.profiled_actions.items(): - - # next line is a workaround for a pytorch issue (fixed on master, still present - # on 1.7). Without it the code fails with `AssertionError: There is already a CPU - # parent event for detach` - function_events.populate_cpu_children = lambda: None - - if self.export_to_chrome: - filename = f"{action_name}_{local_rank}_trace.json" - path_to_trace = ( - filename - if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) - ) - function_events.export_chrome_trace(path_to_trace) + function_events = self.profiler.function_events + + # next line is a workaround for a pytorch issue (fixed on master, still present + # on 1.7). Without it the code fails with `AssertionError: There is already a CPU + # parent event for detach` + function_events.populate_cpu_children = lambda: None + + if self.export_to_chrome: + filename = f"{function_events.name}_{local_rank}_trace.json" + path_to_trace = ( + filename + if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) + ) + function_events.export_chrome_trace(path_to_trace) - data = function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) - table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) - recorded_stats[action_name] = table + data = function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) + table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) + recorded_stats[action_name] = table return self.stats_to_str(recorded_stats) + + def __del__(self) -> None: + super().__del__() + self.profiler.__exit__(None, None, None) + self._parent_profiler.__exit__(None, None, None) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 976d3ba9dafcc..51ea837055d0e 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -307,31 +307,29 @@ def test_pytorch_profiler_nested(tmpdir): with pytorch_profiler.profile("c"): _ = a + b - pa = pytorch_profiler.profiled_actions + actual = {k: [e.name for e in events] for k, events in pytorch_profiler.function_events.items()} + if LooseVersion(torch.__version__) >= LooseVersion("1.7.1"): + actual = {k: [e.replace("aten::", "") for e in events] for k, events in actual.items()} # From PyTorch 1.8.0, less operation are being traced. if LooseVersion(torch.__version__) >= LooseVersion("1.8.0"): - expected_ = { + expected = { 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'add'], 'b': ['zeros', 'empty', 'zero_'], 'c': ['add'], } # From PyTorch 1.6.0, more operation are being traced. elif LooseVersion(torch.__version__) >= LooseVersion("1.6.0"): - expected_ = { + expected = { 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'fill_', 'add', 'empty'], 'b': ['zeros', 'empty', 'zero_', 'fill_'], 'c': ['add', 'empty'], } else: - expected_ = { + expected = { 'a': ['add'], 'b': [], 'c': ['add'], } - for n in ('a', 'b', 'c'): - pa[n] = [e.name for e in pa[n]] - if LooseVersion(torch.__version__) >= LooseVersion("1.7.1"): - pa[n] = [e.replace("aten::", "") for e in pa[n]] - assert pa[n] == expected_[n] + assert actual == expected From 93aa073e44706a29261286f95ad57b25ee8d9345 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mochol=C3=AD?= Date: Tue, 9 Mar 2021 15:29:58 +0100 Subject: [PATCH 004/126] Update pytorch_lightning/profiler/pytorch.py Co-authored-by: thomas chaton --- pytorch_lightning/profiler/pytorch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 98ab37e02f915..a36b69579d122 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -165,7 +165,7 @@ def __deprecation_check( def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: super().on_train_start(local_rank=local_rank, log_dir=log_dir) - # if the user didn't `path_to_export_trace`, + # if the user didn't provide `path_to_export_trace`, # set it as TensorBoardLogger log_dir if exists if self.path_to_export_trace is None: self.path_to_export_trace = log_dir From 0f8b6ef1d7d071dff14dfb5670e3bccb0cb0438e Mon Sep 17 00:00:00 2001 From: tchaton Date: Thu, 18 Mar 2021 19:45:54 +0000 Subject: [PATCH 005/126] resolve tests --- pytorch_lightning/profiler/pytorch.py | 138 ++++++++------------- pytorch_lightning/trainer/training_loop.py | 2 + pytorch_lightning/utilities/imports.py | 1 + tests/callbacks/test_pruning.py | 4 +- tests/test_profiler.py | 50 +++----- 5 files changed, 79 insertions(+), 116 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index a36b69579d122..11fcb00441892 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -15,10 +15,10 @@ import inspect import logging import os -from typing import List, Optional, Union, Type, Any, Tuple, Dict +from typing import Any, Dict, List, Optional, Type, Union import torch -from torch.autograd.profiler import record_function, EventList, parse_event_records +from torch.autograd.profiler import EventList, record_function from pytorch_lightning.profiler.profilers import BaseProfiler from pytorch_lightning.utilities import rank_zero_only @@ -44,6 +44,7 @@ class PyTorchProfiler(BaseProfiler): "self_cuda_memory_usage", "count", ) + ACTION_NAME_START = "on_fit_start" def __init__( self, @@ -54,9 +55,9 @@ def __init__( path_to_export_trace: Optional[str] = None, row_limit: int = 20, sort_by_key: Optional[str] = None, - record_functions: Optional[List[str]] = None, + record_functions: List[str] = [], local_rank: Optional[int] = None, - profiled_functions: Optional[List[str]] = None, + profiled_functions: List[str] = [], **profiler_kwargs: Any, ) -> None: """ @@ -117,7 +118,7 @@ def __init__( record_functions = self.__deprecation_check(profiled_functions, record_functions) self.output_fname = output_filename - self.record_functions = record_functions or self.RECORD_FUNCTIONS + self.record_functions = record_functions + list(self.RECORD_FUNCTIONS) self.sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" self.group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) self.row_limit = row_limit @@ -137,24 +138,21 @@ def __init__( f"Found sort_by_key: {self.sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - self.stack: List[Tuple[str, record_function]] = [] + self.recording_map: Dict[str, record_function] = {} self.profiler: Optional[_PROFILER] = None - self.function_events: Dict[str, EventList] = {} + self.function_events: Optional[EventList] = None + self._profiler_instantiated: bool = False super().__init__(local_rank=local_rank) - def __deprecation_check( - self, - profiled_functions: Optional[List[str]], - record_functions: Optional[List[str]] - ) -> Optional[List[str]]: + def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: if profiled_functions is not None: rank_zero_warn( "`PyTorchProfiler.profiled_functions` has been renamed to" " `record_functions` in v1.3 and will be removed in v1.5", DeprecationWarning ) - if record_functions is None: - record_functions = profiled_functions + if (len(record_functions) == 0 or len(profiled_functions) == 0): + record_functions += profiled_functions else: raise MisconfigurationException( "You set `PytorchProfiler.profiled_functions` and `PyTorchProfiler.record_functions`." @@ -181,75 +179,27 @@ def _rank_zero_only_wrap(self) -> None: self.describe = rank_zero_only(self.describe) def start(self, action_name: str) -> None: - if action_name not in self.record_functions: - return + if not self._profiler_instantiated: - if self.profiler is None: self._create_profilers() self.profiler.__enter__() if self._parent_profiler is not None: self._parent_profiler.__enter__() - recording = record_function(action_name) - self.stack.append((action_name, recording)) - recording.__enter__() + self._profiler_instantiated = True - def _create_profilers(self) -> None: - if self.emit_nvtx: - self._parent_profiler = self._create_profiler(torch.cuda.profiler.profile) - self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) - else: - self._parent_profiler = None - self.profiler = self._create_profiler(torch.autograd.profiler.profile) - - def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: - init_parameters = inspect.signature(profiler.__init__).parameters - kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} - return profiler(**kwargs) + if ( + action_name in self.record_functions and action_name != self.ACTION_NAME_START + and action_name not in self.recording_map + ): + recording = record_function(action_name) + recording.__enter__() + self.recording_map[action_name] = recording def stop(self, action_name: str) -> None: - if self.profiler is None or action_name not in self.record_functions: - return - - if not self.stack or self.stack[-1][0] != action_name: - raise ValueError(f"Attempting to stop recording an action ({action_name}) which was never started.") - - action_name, recording = self.stack.pop() - recording.__exit__(None, None, None) - - self.function_events[action_name] = self.thing() - self.profiler.function_events = None - - if not self.stack: - self.profiler.__exit__(None, None, None) - if self._parent_profiler is not None: - self._parent_profiler.__exit__(None, None, None) - - def thing(self): - """TODO: Adapted from ...""" - profiler = self.profiler - kind = torch.autograd.ProfilerState.CUDA if profiler.use_cuda else torch.autograd.ProfilerState.CPU - config = torch.autograd.ProfilerConfig( - kind, - profiler.record_shapes, - profiler.profile_memory, - profiler.with_stack - ) - - records = torch.autograd._disable_profiler() - - function_events = EventList( - parse_event_records(records), - use_cuda=profiler.use_cuda, - profile_memory=profiler.profile_memory - ) - if profiler.with_stack: - function_events.set_backward_stacktraces() - - torch.autograd._enable_profiler(config) - - return function_events + if action_name in self.recording_map: + self.recording_map[action_name].__exit__(None, None, None) def summary(self) -> str: if not self.profiler_kwargs.get("enabled", True) or self.emit_nvtx: @@ -257,28 +207,48 @@ def summary(self) -> str: local_rank = 0 if self.local_rank is None else self.local_rank recorded_stats = {} - function_events = self.profiler.function_events + self.profiler.__exit__(None, None, None) + self.function_events = self.profiler.function_events + if self._parent_profiler is not None: + self._parent_profiler.__exit__(None, None, None) + self._parent_profiler = None + self.function_events = self.profiler.function_events + self.profiler = None # next line is a workaround for a pytorch issue (fixed on master, still present # on 1.7). Without it the code fails with `AssertionError: There is already a CPU # parent event for detach` - function_events.populate_cpu_children = lambda: None + self.function_events.populate_cpu_children = lambda: None if self.export_to_chrome: - filename = f"{function_events.name}_{local_rank}_trace.json" + filename = f"{self.function_events.name}_{local_rank}_trace.json" path_to_trace = ( - filename - if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) + filename if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) ) - function_events.export_chrome_trace(path_to_trace) + self.function_events.export_chrome_trace(path_to_trace) - data = function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) + data = self.function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) - recorded_stats[action_name] = table + recorded_stats["records"] = table return self.stats_to_str(recorded_stats) - def __del__(self) -> None: + def _create_profilers(self) -> None: + if self.emit_nvtx: + self._parent_profiler = self._create_profiler(torch.cuda.profiler.profile) + self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) + else: + self._parent_profiler = None + self.profiler = self._create_profiler(torch.autograd.profiler.profile) + + def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: + init_parameters = inspect.signature(profiler.__init__).parameters + kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} + return profiler(**kwargs) + + def __del__(self): + if self.profiler is not None: + self.profiler.__exit__(None, None, None) + if self._parent_profiler is not None: + self._parent_profiler.__exit__(None, None, None) super().__del__() - self.profiler.__exit__(None, None, None) - self._parent_profiler.__exit__(None, None, None) diff --git a/pytorch_lightning/trainer/training_loop.py b/pytorch_lightning/trainer/training_loop.py index 39548b5ed64c5..fde42eee1a49c 100644 --- a/pytorch_lightning/trainer/training_loop.py +++ b/pytorch_lightning/trainer/training_loop.py @@ -121,10 +121,12 @@ def setup_fit(self, model, train_dataloader, val_dataloaders, datamodule): self.trainer.callback_connector.attach_model_logging_functions(model) def on_train_end(self): + print("before", self._teardown_already_run) if self._teardown_already_run: return self._teardown_already_run = True + print("after", self._teardown_already_run) # trigger checkpoint check. need to temporarily decrease the global step to avoid saving duplicates # when a checkpoint was saved at the last step diff --git a/pytorch_lightning/utilities/imports.py b/pytorch_lightning/utilities/imports.py index 41a13d6c678a0..22b75981edf7f 100644 --- a/pytorch_lightning/utilities/imports.py +++ b/pytorch_lightning/utilities/imports.py @@ -54,6 +54,7 @@ def _compare_version(package: str, op, version) -> bool: _TORCH_LOWER_EQUAL_1_4 = _compare_version("torch", operator.le, "1.5.0") _TORCH_GREATER_EQUAL_1_6 = _compare_version("torch", operator.ge, "1.6.0") _TORCH_GREATER_EQUAL_1_7 = _compare_version("torch", operator.ge, "1.7.0") +_TORCH_GREATER_EQUAL_1_8 = _compare_version("torch", operator.ge, "1.8.0") _APEX_AVAILABLE = _module_available("apex.amp") _BOLTS_AVAILABLE = _module_available('pl_bolts') diff --git a/tests/callbacks/test_pruning.py b/tests/callbacks/test_pruning.py index 23b2fcbb52235..0e63fc29d49b1 100644 --- a/tests/callbacks/test_pruning.py +++ b/tests/callbacks/test_pruning.py @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import os from collections import OrderedDict from logging import INFO @@ -22,7 +21,7 @@ from torch.nn import Sequential from pytorch_lightning import seed_everything, Trainer -from pytorch_lightning.callbacks import ModelPruning, ModelCheckpoint +from pytorch_lightning.callbacks import ModelCheckpoint, ModelPruning from pytorch_lightning.utilities.exceptions import MisconfigurationException from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -274,6 +273,7 @@ def test_permanent_when_model_is_saved_multiple_times(tmpdir, caplog): seed_everything(0) class TestPruning(ModelPruning): + def on_save_checkpoint(self, trainer, pl_module, checkpoint): super().on_save_checkpoint(trainer, pl_module, checkpoint) assert "layer.mlp_3.weight_orig" not in checkpoint["state_dict"] diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 51ea837055d0e..ab3fa3267bd79 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -217,14 +217,11 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): """Ensure errors are raised where expected.""" action = "test_step" - with pytest.raises(ValueError): - pytorch_profiler.stop(action) - pytorch_profiler.start(action) pytorch_profiler.stop(action) with pytest.raises(MisconfigurationException, match="profiled_functions` and `PyTorchProfiler.record"): - PyTorchProfiler(profiled_functions=[], record_functions=[]) + PyTorchProfiler(profiled_functions=["a"], record_functions=["b"]) @RunIf(min_gpus=2, special=True) @@ -248,8 +245,6 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): ) trainer.fit(model) - assert len(profiler.summary()) > 0 - profiler.describe() data = Path(profiler.output_fname).read_text() assert len(data) > 0 @@ -278,15 +273,13 @@ def test_pytorch_profiler_trainer(tmpdir, use_output_filename): enabled = use_output_filename or not use_output_filename and profiler.local_rank == 0 if enabled: - assert len(profiler.summary()) > 0 - expected = {'validation_step', 'training_step_and_backward', 'training_step', 'backward'} - assert set(profiler.profiled_actions.keys()) == expected + expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') + for name in expected: + assert len([e for e in profiler.function_events if name == e.name]) > 0 else: - assert profiler.summary() is None - assert set(profiler.profiled_actions.keys()) == set() + assert profiler.function_events is None if use_output_filename: - profiler.describe() data = Path(profiler.output_fname).read_text() assert len(data) > 0 @@ -307,29 +300,26 @@ def test_pytorch_profiler_nested(tmpdir): with pytorch_profiler.profile("c"): _ = a + b - actual = {k: [e.name for e in events] for k, events in pytorch_profiler.function_events.items()} - if LooseVersion(torch.__version__) >= LooseVersion("1.7.1"): - actual = {k: [e.replace("aten::", "") for e in events] for k, events in actual.items()} + pytorch_profiler.describe() - # From PyTorch 1.8.0, less operation are being traced. - if LooseVersion(torch.__version__) >= LooseVersion("1.8.0"): + events_name = {e.name for e in pytorch_profiler.function_events} + + if LooseVersion(torch.__version__) >= LooseVersion("1.5.0"): expected = { - 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'add'], - 'b': ['zeros', 'empty', 'zero_'], - 'c': ['add'], + 'signed char', 'add', 'profiler::_record_function_exit', 'bool', 'char', 'profiler::_record_function_enter' } - # From PyTorch 1.6.0, more operation are being traced. - elif LooseVersion(torch.__version__) >= LooseVersion("1.6.0"): + + if LooseVersion(torch.__version__) >= LooseVersion("1.6.0"): + expected = {'add', 'zeros', 'ones', 'zero_', 'b', 'fill_', 'c', 'a', 'empty'} + + if LooseVersion(torch.__version__) >= LooseVersion("1.7.0"): expected = { - 'a': ['ones', 'empty', 'fill_', 'zeros', 'empty', 'zero_', 'fill_', 'add', 'empty'], - 'b': ['zeros', 'empty', 'zero_', 'fill_'], - 'c': ['add', 'empty'], + 'aten::zeros', 'aten::add', 'aten::zero_', 'c', 'b', 'a', 'aten::fill_', 'aten::empty', 'aten::ones' } - else: + + if LooseVersion(torch.__version__) >= LooseVersion("1.8.0"): expected = { - 'a': ['add'], - 'b': [], - 'c': ['add'], + 'aten::ones', 'a', 'aten::add', 'aten::empty', 'aten::zero_', 'b', 'c', 'aten::zeros', 'aten::fill_' } - assert actual == expected + assert events_name == expected From 8a3d3cf16031938986934b0d2552ebdbbf117026 Mon Sep 17 00:00:00 2001 From: tchaton Date: Thu, 18 Mar 2021 20:08:21 +0000 Subject: [PATCH 006/126] resolve tests --- pytorch_lightning/trainer/training_loop.py | 2 -- tests/test_profiler.py | 7 +++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pytorch_lightning/trainer/training_loop.py b/pytorch_lightning/trainer/training_loop.py index 8cc68708a1323..43c9829b91dad 100644 --- a/pytorch_lightning/trainer/training_loop.py +++ b/pytorch_lightning/trainer/training_loop.py @@ -120,11 +120,9 @@ def setup_fit(self, model, train_dataloader=None, val_dataloaders=None, datamodu self.trainer.callback_connector.attach_model_logging_functions(model) def on_train_end(self): - print("before", self._teardown_already_run) if self._teardown_already_run: return self._teardown_already_run = True - print("after", self._teardown_already_run) # trigger checkpoint check. need to temporarily decrease the global step to avoid saving duplicates # when a checkpoint was saved at the last step diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 22e0f3e39fc88..1d707f301e688 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -304,10 +304,9 @@ def test_pytorch_profiler_nested(tmpdir): events_name = {e.name for e in pytorch_profiler.function_events} - if LooseVersion(torch.__version__) >= LooseVersion("1.5.0"): - expected = { - 'signed char', 'add', 'profiler::_record_function_exit', 'bool', 'char', 'profiler::_record_function_enter' - } + expected = { + 'signed char', 'add', 'profiler::_record_function_exit', 'bool', 'char', 'profiler::_record_function_enter' + } if LooseVersion(torch.__version__) >= LooseVersion("1.6.0"): expected = {'add', 'zeros', 'ones', 'zero_', 'b', 'fill_', 'c', 'a', 'empty'} From af865ff6f519617fa9ec73d6a40aa4837b1ce877 Mon Sep 17 00:00:00 2001 From: tchaton Date: Thu, 18 Mar 2021 20:26:43 +0000 Subject: [PATCH 007/126] find output --- tests/test_profiler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 1d707f301e688..d41f83401a327 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -321,4 +321,4 @@ def test_pytorch_profiler_nested(tmpdir): 'aten::ones', 'a', 'aten::add', 'aten::empty', 'aten::zero_', 'b', 'c', 'aten::zeros', 'aten::fill_' } - assert events_name == expected + assert events_name == expected, (events_name, torch.__version__, platform.system()) From 6147e6ee3216f02cc7671d0b6c7a5e64423c0f34 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 08:55:10 +0000 Subject: [PATCH 008/126] try something --- pytorch_lightning/profiler/profilers.py | 2 ++ pytorch_lightning/profiler/pytorch.py | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index fd4bcf8732932..c4358bfa4870f 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -56,6 +56,7 @@ def __init__(self, local_rank: Optional[int] = None, log_dir: Optional[str] = No # the profiler can be used outside of lightning # that's why we call `on_train_start` manually self.on_train_start(local_rank=local_rank, log_dir=log_dir) + self.output_file = None def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None): """ @@ -132,6 +133,7 @@ class PassThroughProfiler(BaseProfiler): This class should be used when you don't want the (small) overhead of profiling. The Trainer uses this class by default. """ + def start(self, action_name: str) -> None: pass diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 11fcb00441892..1ebe8be8511c1 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -14,7 +14,6 @@ """Profiler to check if there are any bottlenecks in your code.""" import inspect import logging -import os from typing import Any, Dict, List, Optional, Type, Union import torch From 5053b4fb2704c89d3436b390515008580cc31c10 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 09:10:16 +0000 Subject: [PATCH 009/126] update --- pytorch_lightning/profiler/profilers.py | 3 +-- pytorch_lightning/profiler/pytorch.py | 7 ------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index c4358bfa4870f..cb0c41244fe9f 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -53,10 +53,10 @@ class BaseProfiler(AbstractProfiler, ABC): def __init__(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: self.output_fname = getattr(self, "output_fname", None) + self.output_file = None # the profiler can be used outside of lightning # that's why we call `on_train_start` manually self.on_train_start(local_rank=local_rank, log_dir=log_dir) - self.output_file = None def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None): """ @@ -68,7 +68,6 @@ def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str self.prepare_file() def prepare_file(self) -> None: - self.output_file = None if self.output_fname: fs = get_filesystem(self.output_fname) self.output_file = fs.open(self.output_fname, "w") diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 1ebe8be8511c1..b07cebd0301d5 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -244,10 +244,3 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) - - def __del__(self): - if self.profiler is not None: - self.profiler.__exit__(None, None, None) - if self._parent_profiler is not None: - self._parent_profiler.__exit__(None, None, None) - super().__del__() From 3ae2fbf54aa48256a33fb37513fe23a1cd462dc2 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 10:14:14 +0000 Subject: [PATCH 010/126] add support for test and predict --- pytorch_lightning/profiler/pytorch.py | 28 ++++++--- pytorch_lightning/trainer/predict_loop.py | 3 + pytorch_lightning/trainer/trainer.py | 4 +- tests/test_profiler.py | 76 ++++++++++++++--------- 4 files changed, 72 insertions(+), 39 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index b07cebd0301d5..7c64c730f270f 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -14,6 +14,7 @@ """Profiler to check if there are any bottlenecks in your code.""" import inspect import logging +import os from typing import Any, Dict, List, Optional, Type, Union import torch @@ -31,7 +32,9 @@ class PyTorchProfiler(BaseProfiler): - RECORD_FUNCTIONS = ("training_step_and_backward", "training_step", "backward", "validation_step", "test_step") + RECORD_FUNCTIONS = ( + "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict" + ) AVAILABLE_SORT_KEYS = ( "cpu_time", "cuda_time", @@ -50,7 +53,7 @@ def __init__( output_filename: Optional[str] = None, group_by_input_shapes: bool = False, emit_nvtx: bool = False, - export_to_chrome: bool = False, + export_to_chrome: bool = True, path_to_export_trace: Optional[str] = None, row_limit: int = 20, sort_by_key: Optional[str] = None, @@ -199,6 +202,7 @@ def start(self, action_name: str) -> None: def stop(self, action_name: str) -> None: if action_name in self.recording_map: self.recording_map[action_name].__exit__(None, None, None) + del self.recording_map[action_name] def summary(self) -> str: if not self.profiler_kwargs.get("enabled", True) or self.emit_nvtx: @@ -208,19 +212,14 @@ def summary(self) -> str: recorded_stats = {} self.profiler.__exit__(None, None, None) self.function_events = self.profiler.function_events + self.profiler = None + if self._parent_profiler is not None: self._parent_profiler.__exit__(None, None, None) self._parent_profiler = None - self.function_events = self.profiler.function_events - self.profiler = None - - # next line is a workaround for a pytorch issue (fixed on master, still present - # on 1.7). Without it the code fails with `AssertionError: There is already a CPU - # parent event for detach` - self.function_events.populate_cpu_children = lambda: None if self.export_to_chrome: - filename = f"{self.function_events.name}_{local_rank}_trace.json" + filename = f"{local_rank}_trace.json" path_to_trace = ( filename if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) ) @@ -244,3 +243,12 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) + + def __del__(self): + if self.profiler is not None: + self.profiler.__exit__(None, None, None) + if self._parent_profiler is not None: + self._parent_profiler.__exit__(None, None, None) + for recording in self.recording_map.values(): + recording.__exit__(None, None, None) + super().__del__() diff --git a/pytorch_lightning/trainer/predict_loop.py b/pytorch_lightning/trainer/predict_loop.py index 70329b4fdf514..8d99a4db38ce8 100644 --- a/pytorch_lightning/trainer/predict_loop.py +++ b/pytorch_lightning/trainer/predict_loop.py @@ -86,6 +86,9 @@ def predict(self, batch, batch_idx, dataloader_idx): return def on_predict_epoch_end(self): + if self.trainer.profiler is not None: + self.trainer.profiler.describe() + self.trainer._progress_bar_callback.on_predict_end(self.trainer, self.trainer.lightning_module) results = self._predictions diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index 44b0e716a90c0..c6fdaa8fc94c1 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -742,6 +742,9 @@ def run_evaluate(self): with self.profiler.profile(f"run_{self._running_stage}_evaluation"): eval_loop_results, _ = self.run_evaluation() + if self.profiler is not None: + self.profiler.describe() + if len(eval_loop_results) == 0: return 1 @@ -789,7 +792,6 @@ def run_predict(self): # lightning module methods with self.profiler.profile("predict"): self.predict_loop.predict(batch, batch_idx, dataloader_idx) - results = self.predict_loop.on_predict_epoch_end() return results diff --git a/tests/test_profiler.py b/tests/test_profiler.py index d41f83401a327..e5bc4ca244639 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -13,6 +13,7 @@ # limitations under the License. import logging import os +import platform import time from distutils.version import LooseVersion from pathlib import Path @@ -225,40 +226,28 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir): +def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the training and default step are properly recorded. """ - output_filename = os.path.join(tmpdir, "profiler.txt") - - profiler = PyTorchProfiler(output_filename=output_filename) - model = BoringModel() trainer = Trainer( max_epochs=1, default_root_dir=tmpdir, limit_train_batches=6, limit_val_batches=6, - profiler=profiler, + profiler=pytorch_profiler, accelerator="ddp", gpus=2, logger=TensorBoardLogger(tmpdir) ) trainer.fit(model) - data = Path(profiler.output_fname).read_text() + data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 -@pytest.mark.parametrize("use_output_filename", [True]) -def test_pytorch_profiler_trainer(tmpdir, use_output_filename): - """Ensure that the profiler can be given to the training and default step are properly recorded. """ - - if use_output_filename: - output_filename = os.path.join(tmpdir, "profiler.txt") - else: - output_filename = None - - profiler = PyTorchProfiler(output_filename=output_filename) +def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): + """Ensure that the profiler can be given to the trainer and training, validation steps are properly recorded. """ model = BoringModel() trainer = Trainer( @@ -266,22 +255,53 @@ def test_pytorch_profiler_trainer(tmpdir, use_output_filename): max_epochs=1, limit_train_batches=1, limit_val_batches=1, - profiler=profiler, + profiler=pytorch_profiler, ) trainer.fit(model) - enabled = use_output_filename or not use_output_filename and profiler.local_rank == 0 + expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') + for name in expected: + assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0 + + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 + - if enabled: - expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') - for name in expected: - assert len([e for e in profiler.function_events if name == e.name]) > 0 - else: - assert profiler.function_events is None +def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): + """Ensure that the profiler can be given to the trainer and test step are properly recorded. """ + + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + max_epochs=1, + limit_test_batches=2, + profiler=pytorch_profiler, + ) + trainer.test(model) - if use_output_filename: - data = Path(profiler.output_fname).read_text() - assert len(data) > 0 + assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 + + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 + + +def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): + """Ensure that the profiler can be given to the trainer and predict function are properly recorded. """ + + model = BoringModel() + model.predict_dataloader = model.train_dataloader + trainer = Trainer( + default_root_dir=tmpdir, + max_epochs=1, + limit_test_batches=2, + profiler=pytorch_profiler, + ) + trainer.predict(model) + + assert len([e for e in pytorch_profiler.function_events if 'predict' == e.name]) > 0 + + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 def test_pytorch_profiler_nested(tmpdir): From 1d7ac88bccffbe0a58cb286be8f0187c9c1c91a6 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 11:30:05 +0000 Subject: [PATCH 011/126] update --- pytorch_lightning/profiler/pytorch.py | 69 +++++++++++++++++++ .../trainer/connectors/profiler_connector.py | 2 + tests/test_profiler.py | 2 + 3 files changed, 73 insertions(+) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 7c64c730f270f..215619cac4539 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -15,6 +15,7 @@ import inspect import logging import os +from functools import partial from typing import Any, Dict, List, Optional, Type, Union import torch @@ -30,6 +31,60 @@ _PROFILER = Union[torch.autograd.profiler.profile, torch.cuda.profiler.profile, torch.autograd.profiler.emit_nvtx] +class RegisterRecordFunction: + """ + While profiling autograd operations, this class will add label with module name + around the forward function. + The Lightning PyTorch Profiler will activate this feature automatically. + It can be deactivated as follows: + Example:: + from pytorch_lightning.profilers import PyTorchProfiler + profiler = PyTorchProfiler(record_module_names=False) + Trainer(profiler=profiler) + It can be used outside of Lightning as follows: + Example:: + from pytorch_lightning import Trainer, seed_everything + with RegisterRecordFunction(model): + out = model(batch) + """ + + def __init__(self, model): + self._model = model + self._records = {} + self.handles = {} + + def _start_recording_forward(self, module, input, module_name: str = None, is_built_in: bool = None): + if module_name is not None: + record_name = module_name if is_built_in else f"{type(module)}: {module_name}" + self._records[record_name] = record_function(record_name).__enter__() + return input + + def _stop_recording_forward(self, module, input, result, module_name: str = None, is_built_in: bool = None): + if module_name is not None: + record_name = module_name if is_built_in else f"{type(module)}: {module_name}" + self._records[record_name].__exit__(None, None, None) + return result + + def __enter__(self): + built_in_modules = dir(torch.nn) + for module_name, module in self._model.named_modules(): + if module_name != '': + is_built_in = module in built_in_modules + pre_forward_handle = module.register_forward_pre_hook( + partial(self._start_recording_forward, module_name=module_name, is_built_in=is_built_in) + ) + post_forward_handle = module.register_forward_hook( + partial(self._stop_recording_forward, module_name=module_name, is_built_in=is_built_in) + ) + + self.handles[module_name] = [pre_forward_handle, post_forward_handle] + + def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): + for handles in self.handles.values(): + for h in handles: + h.remove() + + class PyTorchProfiler(BaseProfiler): RECORD_FUNCTIONS = ( @@ -60,6 +115,7 @@ def __init__( record_functions: List[str] = [], local_rank: Optional[int] = None, profiled_functions: List[str] = [], + record_module_names: bool = True, **profiler_kwargs: Any, ) -> None: """ @@ -107,6 +163,8 @@ def __init__( profiler_kwargs: Keyword arguments for the PyTorch profiler. This depends on your PyTorch version + record_module_names: Whether to add module names while recording autograd operation. + Raises: MisconfigurationException: If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``, or @@ -127,6 +185,9 @@ def __init__( self.emit_nvtx = emit_nvtx self.export_to_chrome = export_to_chrome self.path_to_export_trace = path_to_export_trace + self.record_module_names = record_module_names + self.lightning_module = None # set by ProfilerConnector + self.register = None self.profiler_kwargs = profiler_kwargs if self.export_to_chrome and self.path_to_export_trace is None: @@ -191,6 +252,10 @@ def start(self, action_name: str) -> None: self._profiler_instantiated = True + if self.record_module_names and self.lightning_module is not None: + self.register = RegisterRecordFunction(self.lightning_module) + self.register.__enter__() + if ( action_name in self.record_functions and action_name != self.ACTION_NAME_START and action_name not in self.recording_map @@ -213,11 +278,15 @@ def summary(self) -> str: self.profiler.__exit__(None, None, None) self.function_events = self.profiler.function_events self.profiler = None + self._profiler_instantiated = False if self._parent_profiler is not None: self._parent_profiler.__exit__(None, None, None) self._parent_profiler = None + if self.register is not None: + self.register.__exit__(None, None, None) + if self.export_to_chrome: filename = f"{local_rank}_trace.json" path_to_trace = ( diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 7639926424090..231aa884a47df 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -13,6 +13,7 @@ # limitations under the License from typing import Union +from weakref import proxy from pytorch_lightning.profiler import ( AdvancedProfiler, @@ -57,4 +58,5 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): def on_train_start(self, trainer): if not isinstance(trainer.profiler, PassThroughProfiler): local_rank = trainer.local_rank if trainer.world_size > 1 else None + self.trainer.profiler.lightning_module = proxy(self.trainer.lightning_module) self.trainer.profiler.on_train_start(local_rank=local_rank, log_dir=self.trainer.log_dir) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index e5bc4ca244639..16f21b793561e 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -25,6 +25,7 @@ from pytorch_lightning import Trainer from pytorch_lightning.loggers import TensorBoardLogger from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler +from pytorch_lightning.profiler.pytorch import RegisterRecordFunction from pytorch_lightning.utilities.exceptions import MisconfigurationException from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -265,6 +266,7 @@ def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 + print(tmpdir) def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): From 64f8a58249bd05c2e4fb207c0a1ab75edf184213 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Fri, 19 Mar 2021 11:34:25 +0000 Subject: [PATCH 012/126] update --- tests/special_tests.sh | 2 +- tests/test_profiler.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/special_tests.sh b/tests/special_tests.sh index 43658721e9226..e5c6e313bb6d8 100644 --- a/tests/special_tests.sh +++ b/tests/special_tests.sh @@ -33,4 +33,4 @@ python ${DEFAULTS} tests/models/test_hooks.py::test_transfer_batch_hook_ddp python ${DEFAULTS} tests/trainer/test_data_loading.py::test_replace_distrubuted_sampler_custom_dataloader_custom_batch_sampler python ${DEFAULTS} tests/trainer/optimization/test_manual_optimization.py::test_step_with_optimizer_closure_with_different_frequencies_ddp_with_toggle_model python ${DEFAULTS} tests/checkpointing/test_checkpoint_callback_frequency.py::test_top_k_ddp -nvprof --profile-from-start off -o trace_name.prof -- python ${DEFAULTS} tests/trainer/test_trainer.py::test_pytorch_profiler_nested_emit_nvtx +nvprof --profile-from-start off -o trace_name.prof -- python ${DEFAULTS} tests/test_profiler.py::test_pytorch_profiler_nested_emit_nvtx diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 16f21b793561e..36fc8b9741771 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -306,6 +306,22 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): assert len(data) > 0 +@RunIf(min_gpus=1, special=True) +def test_pytorch_profiler_nested_emit_nvtx(tmpdir): + """ + This test check emit_nvtx is correctly supported + """ + profiler = PyTorchProfiler(use_cuda=True, emit_nvtx=True) + + model = BoringModel() + trainer = Trainer( + fast_dev_run=True, + profiler=profiler, + gpus=1, + ) + trainer.fit(model) + + def test_pytorch_profiler_nested(tmpdir): """Ensure that the profiler handles nested context""" From 655ff46a4983aa58d44c7efebb121ccc196ef2b7 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Fri, 19 Mar 2021 11:36:04 +0000 Subject: [PATCH 013/126] use getattr --- pytorch_lightning/profiler/profilers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index cb0c41244fe9f..eeb20c112887b 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -123,7 +123,7 @@ def stats_to_str(self, stats: dict) -> str: def __del__(self) -> None: """Close profiler's stream.""" - if self.output_file: + if getattr(self, "output_file") is not None: self.output_file.close() From 3f5c4d67d6d4ccc133c033e3e0317636cc4424cf Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 11:51:11 +0000 Subject: [PATCH 014/126] test --- pytorch_lightning/profiler/profilers.py | 4 +++- tests/test_profiler.py | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index eeb20c112887b..828d00da70dc2 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -123,8 +123,10 @@ def stats_to_str(self, stats: dict) -> str: def __del__(self) -> None: """Close profiler's stream.""" - if getattr(self, "output_file") is not None: + try: self.output_file.close() + except AttributeError: + pass class PassThroughProfiler(BaseProfiler): diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 36fc8b9741771..f3750aded0356 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -25,7 +25,6 @@ from pytorch_lightning import Trainer from pytorch_lightning.loggers import TensorBoardLogger from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler -from pytorch_lightning.profiler.pytorch import RegisterRecordFunction from pytorch_lightning.utilities.exceptions import MisconfigurationException from tests.helpers import BoringModel from tests.helpers.runif import RunIf From ced0d66ea5883f83e2c938051c97a45f43ba7424 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 12:19:09 +0000 Subject: [PATCH 015/126] test --- 0_trace.json | 1 + pytorch_lightning/profiler/pytorch.py | 11 ++--------- .../trainer/connectors/profiler_connector.py | 2 ++ tests/test_profiler.py | 3 ++- 4 files changed, 7 insertions(+), 10 deletions(-) create mode 100644 0_trace.json diff --git a/0_trace.json b/0_trace.json new file mode 100644 index 0000000000000..9946c108fe5c7 --- /dev/null +++ b/0_trace.json @@ -0,0 +1 @@ +[{"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 22.0, "dur": 178.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 23.0, "dur": 177.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 23.0, "dur": 177.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 20.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 21.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 21.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 173.0, "dur": 11.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 173.0, "dur": 11.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 174.0, "dur": 9.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 198.0, "dur": 2.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 199.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 199.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}] diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 215619cac4539..ce2295092763d 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -189,6 +189,8 @@ def __init__( self.lightning_module = None # set by ProfilerConnector self.register = None self.profiler_kwargs = profiler_kwargs + self.profiler = None + self._parent_profiler = None if self.export_to_chrome and self.path_to_export_trace is None: rank_zero_warn( @@ -312,12 +314,3 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) - - def __del__(self): - if self.profiler is not None: - self.profiler.__exit__(None, None, None) - if self._parent_profiler is not None: - self._parent_profiler.__exit__(None, None, None) - for recording in self.recording_map.values(): - recording.__exit__(None, None, None) - super().__del__() diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 231aa884a47df..4779d61587295 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -54,6 +54,8 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): " `Trainer`, it can only be 'simple' or 'advanced'" ) self.trainer.profiler = profiler or PassThroughProfiler() + if isinstance(self.trainer.profiler, PyTorchProfiler): + self.trainer.profiler = proxy(self.trainer.profiler) def on_train_start(self, trainer): if not isinstance(trainer.profiler, PassThroughProfiler): diff --git a/tests/test_profiler.py b/tests/test_profiler.py index f3750aded0356..3a3c2836e48c2 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -200,7 +200,8 @@ def test_advanced_profiler_value_errors(advanced_profiler): @pytest.fixture def pytorch_profiler(tmpdir): profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) - return profiler + yield profiler + del profiler def test_pytorch_profiler_describe(pytorch_profiler): From 662f8de22f4da2b928c99c832638f1bc3e091fd1 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 12:53:41 +0000 Subject: [PATCH 016/126] update --- pytorch_lightning/trainer/connectors/profiler_connector.py | 1 - tests/test_profiler.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 4779d61587295..2d286eb0be7f2 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -60,5 +60,4 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): def on_train_start(self, trainer): if not isinstance(trainer.profiler, PassThroughProfiler): local_rank = trainer.local_rank if trainer.world_size > 1 else None - self.trainer.profiler.lightning_module = proxy(self.trainer.lightning_module) self.trainer.profiler.on_train_start(local_rank=local_rank, log_dir=self.trainer.log_dir) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 3a3c2836e48c2..abadb3c099283 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -326,6 +326,7 @@ def test_pytorch_profiler_nested(tmpdir): """Ensure that the profiler handles nested context""" pytorch_profiler = PyTorchProfiler( + export_to_chrome=False, record_functions=["a", "b", "c"], use_cuda=torch.cuda.is_available(), output_filename=os.path.join(tmpdir, "profiler.txt") From 753f63bcac26e59b05a2ea861a7611f326139312 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 13:03:22 +0000 Subject: [PATCH 017/126] tests --- pytorch_lightning/profiler/pytorch.py | 11 +++++++++++ tests/test_profiler.py | 3 +-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index ce2295092763d..d291465dd3cd5 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -314,3 +314,14 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) + + def __del__(self): + try: + self.profiler.__exit__(None, None, None) + except RuntimeError: + pass + try: + self._parent_profiler.__exit__(None, None, None) + except RuntimeError: + pass + super().__del__() diff --git a/tests/test_profiler.py b/tests/test_profiler.py index abadb3c099283..962c1a698ec21 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -200,8 +200,7 @@ def test_advanced_profiler_value_errors(advanced_profiler): @pytest.fixture def pytorch_profiler(tmpdir): profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) - yield profiler - del profiler + return profiler def test_pytorch_profiler_describe(pytorch_profiler): From e6a69173a139fbbc8ed2033009e614e588e5ee34 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 13:06:44 +0000 Subject: [PATCH 018/126] update --- pytorch_lightning/profiler/pytorch.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index d291465dd3cd5..fdf9cfcf273b5 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -318,10 +318,10 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: def __del__(self): try: self.profiler.__exit__(None, None, None) - except RuntimeError: + except (AttributeError, RuntimeError): pass try: self._parent_profiler.__exit__(None, None, None) - except RuntimeError: + except (AttributeError, RuntimeError): pass super().__del__() From a7f7f4c4c82f0222f3d37c6ac14f3ec4ed7add89 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 13:20:28 +0000 Subject: [PATCH 019/126] update --- pytorch_lightning/trainer/connectors/profiler_connector.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 2d286eb0be7f2..7f96c1a6c0ace 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -54,8 +54,6 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): " `Trainer`, it can only be 'simple' or 'advanced'" ) self.trainer.profiler = profiler or PassThroughProfiler() - if isinstance(self.trainer.profiler, PyTorchProfiler): - self.trainer.profiler = proxy(self.trainer.profiler) def on_train_start(self, trainer): if not isinstance(trainer.profiler, PassThroughProfiler): From c221d7d9b8d6d22fbc15c3560f0adeed364c1242 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 13:23:28 +0000 Subject: [PATCH 020/126] update --- pytorch_lightning/trainer/connectors/profiler_connector.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 7f96c1a6c0ace..7639926424090 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -13,7 +13,6 @@ # limitations under the License from typing import Union -from weakref import proxy from pytorch_lightning.profiler import ( AdvancedProfiler, From e39f6d7f5a601390436fbe425a43c9a9f6eac088 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 13:47:45 +0000 Subject: [PATCH 021/126] update --- pytorch_lightning/profiler/pytorch.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index fdf9cfcf273b5..aad0262ca821a 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -208,6 +208,12 @@ def __init__( self.function_events: Optional[EventList] = None self._profiler_instantiated: bool = False + # disable profiler if the user already created a profiler + try: + torch.autograd._disable_profiler() + except RuntimeError: + pass + super().__init__(local_rank=local_rank) def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: @@ -324,4 +330,9 @@ def __del__(self): self._parent_profiler.__exit__(None, None, None) except (AttributeError, RuntimeError): pass + # disable profiler if the user already created a profiler + try: + torch.autograd._disable_profiler() + except RuntimeError: + pass super().__del__() From e4858503463440ba9ed49c45c71e426405f54285 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 14:18:36 +0000 Subject: [PATCH 022/126] update --- pytorch_lightning/profiler/pytorch.py | 22 -------------------- tests/test_profiler.py | 29 +++++++++++---------------- 2 files changed, 12 insertions(+), 39 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index aad0262ca821a..ce2295092763d 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -208,12 +208,6 @@ def __init__( self.function_events: Optional[EventList] = None self._profiler_instantiated: bool = False - # disable profiler if the user already created a profiler - try: - torch.autograd._disable_profiler() - except RuntimeError: - pass - super().__init__(local_rank=local_rank) def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: @@ -320,19 +314,3 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) - - def __del__(self): - try: - self.profiler.__exit__(None, None, None) - except (AttributeError, RuntimeError): - pass - try: - self._parent_profiler.__exit__(None, None, None) - except (AttributeError, RuntimeError): - pass - # disable profiler if the user already created a profiler - try: - torch.autograd._disable_profiler() - except RuntimeError: - pass - super().__del__() diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 962c1a698ec21..a0160be5d43f4 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -197,14 +197,9 @@ def test_advanced_profiler_value_errors(advanced_profiler): advanced_profiler.stop(action) -@pytest.fixture -def pytorch_profiler(tmpdir): - profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) - return profiler - - -def test_pytorch_profiler_describe(pytorch_profiler): +def test_pytorch_profiler_describe(tmpdir): """Ensure the profiler won't fail when reporting the summary.""" + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) with pytorch_profiler.profile("test_step"): pass @@ -214,9 +209,9 @@ def test_pytorch_profiler_describe(pytorch_profiler): assert len(data) > 0 -def test_pytorch_profiler_value_errors(pytorch_profiler): +def test_pytorch_profiler_value_errors(tmpdir): """Ensure errors are raised where expected.""" - + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) action = "test_step" pytorch_profiler.start(action) pytorch_profiler.stop(action) @@ -226,9 +221,9 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_ddp(tmpdir): """Ensure that the profiler can be given to the training and default step are properly recorded. """ - + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() trainer = Trainer( max_epochs=1, @@ -246,9 +241,9 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): assert len(data) > 0 -def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_fit(tmpdir): """Ensure that the profiler can be given to the trainer and training, validation steps are properly recorded. """ - + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -268,9 +263,9 @@ def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): print(tmpdir) -def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_test(tmpdir): """Ensure that the profiler can be given to the trainer and test step are properly recorded. """ - + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -286,9 +281,9 @@ def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): assert len(data) > 0 -def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_predict(tmpdir): """Ensure that the profiler can be given to the trainer and predict function are properly recorded. """ - + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() model.predict_dataloader = model.train_dataloader trainer = Trainer( From 00d355a32882a6ab5fac7729df3d9771c7db512a Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 14:24:13 +0000 Subject: [PATCH 023/126] remove file --- 0_trace.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 0_trace.json diff --git a/0_trace.json b/0_trace.json deleted file mode 100644 index 9946c108fe5c7..0000000000000 --- a/0_trace.json +++ /dev/null @@ -1 +0,0 @@ -[{"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 22.0, "dur": 178.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 23.0, "dur": 177.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 23.0, "dur": 177.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 20.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 21.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 21.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 173.0, "dur": 11.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 173.0, "dur": 11.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 174.0, "dur": 9.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 198.0, "dur": 2.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 199.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 199.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}] From 61da390b1f5c85777aa177bf05a0ccdbaf44cffc Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Fri, 19 Mar 2021 14:30:45 +0000 Subject: [PATCH 024/126] update --- 0_trace.json | 2 +- pytorch_lightning/profiler/pytorch.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/0_trace.json b/0_trace.json index 9946c108fe5c7..c86b649ec22a0 100644 --- a/0_trace.json +++ b/0_trace.json @@ -1 +1 @@ -[{"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 18.0, "dur": 4.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 22.0, "dur": 178.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 23.0, "dur": 177.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "signed char", "ph": "X", "ts": 23.0, "dur": 177.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 108.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 20.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 21.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "bool", "ph": "X", "ts": 110.0, "dur": 21.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 129.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_enter", "ph": "X", "ts": 144.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "char", "ph": "X", "ts": 145.0, "dur": 46.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 173.0, "dur": 11.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 173.0, "dur": 11.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "add", "ph": "X", "ts": 174.0, "dur": 9.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 190.0, "dur": 1.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 198.0, "dur": 2.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 199.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}, {"name": "profiler::_record_function_exit", "ph": "X", "ts": 199.0, "dur": 0.0, "tid": 0, "pid": "CPU functions", "args": {}}] +[{"name": "aten::is_floating_point", "ph": "X", "ts": 129.565, "dur": 2.926000000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 138.162, "dur": 2.0960000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 148.114, "dur": 1.7849999999999966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::set_data", "ph": "X", "ts": 155.128, "dur": 5.027000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 157.16, "dur": 1.1049999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::is_floating_point", "ph": "X", "ts": 178.132, "dur": 1.2519999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 182.618, "dur": 1.5870000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 189.559, "dur": 1.1850000000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::set_data", "ph": "X", "ts": 193.925, "dur": 3.5600000000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 195.186, "dur": 1.054000000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::randn", "ph": "X", "ts": 2570.025, "dur": 61.822000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2574.206, "dur": 5.308999999999742, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::normal_", "ph": "X", "ts": 2582.046, "dur": 48.271000000000186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3221.996, "dur": 5.288000000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::random_", "ph": "X", "ts": 3308.647, "dur": 11.412000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::is_floating_point", "ph": "X", "ts": 3326.955, "dur": 1.5470000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::item", "ph": "X", "ts": 3339.945, "dur": 8.588999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_local_scalar_dense", "ph": "X", "ts": 3342.775, "dur": 4.529999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3376.418, "dur": 12.985999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3381.765, "dur": 2.762000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3413.297, "dur": 40.929999999999836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3417.855, "dur": 5.887000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3420.842, "dur": 1.7329999999997199, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3425.337, "dur": 25.809999999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3428.012, "dur": 21.442000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3432.097, "dur": 2.5599999999999454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3438.643, "dur": 2.844000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3443.968, "dur": 1.167000000000371, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3446.78, "dur": 1.0949999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3481.682, "dur": 14.400000000000091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3484.174, "dur": 2.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3488.937, "dur": 5.876999999999953, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 3490.979, "dur": 2.7530000000001564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3509.096, "dur": 219.07200000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3511.332, "dur": 2.104000000000269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3564.824, "dur": 2.40099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3620.72, "dur": 15.432000000000244, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3624.747, "dur": 6.519999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3627.284, "dur": 2.7229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3641.587, "dur": 37.67599999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3646.704, "dur": 2.1929999999997563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3650.847, "dur": 5.239999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3653.339, "dur": 1.51299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3659.861, "dur": 11.55600000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3666.495, "dur": 1.1730000000002292, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3742.0, "dur": 11.407999999999902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3747.237, "dur": 2.0709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3765.534, "dur": 38.2829999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3770.058, "dur": 5.657000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3773.123, "dur": 1.4490000000000691, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3777.252, "dur": 23.610999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3779.628, "dur": 19.690999999999804, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3783.274, "dur": 2.32300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3789.318, "dur": 2.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3793.897, "dur": 1.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3796.838, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3826.407, "dur": 13.891999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3829.028, "dur": 2.5700000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3833.259, "dur": 5.686000000000149, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 3835.103, "dur": 2.811999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3850.685, "dur": 186.70000000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3852.843, "dur": 1.844000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3895.115, "dur": 2.22400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3941.402, "dur": 14.891999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3945.592, "dur": 6.195999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3947.987, "dur": 2.5470000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3961.284, "dur": 34.723999999999705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3965.928, "dur": 2.1920000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3969.975, "dur": 4.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3972.225, "dur": 1.3580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3978.356, "dur": 10.846999999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3984.505, "dur": 1.1970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4050.305, "dur": 10.524000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4055.12, "dur": 1.8769999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4072.075, "dur": 37.07999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4076.189, "dur": 5.639000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4079.298, "dur": 1.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4083.375, "dur": 22.822000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4085.648, "dur": 19.01800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4089.173, "dur": 2.0950000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4094.835, "dur": 2.2299999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4099.441, "dur": 1.0450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4102.202, "dur": 1.0159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4130.637, "dur": 13.369000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4133.205, "dur": 2.3410000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4137.278, "dur": 5.436999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 4138.995, "dur": 2.693000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4153.926, "dur": 178.6389999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4156.217, "dur": 1.7510000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4195.988, "dur": 2.199999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4240.027, "dur": 14.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4243.885, "dur": 6.010000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4246.327, "dur": 2.3599999999996726, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4258.8, "dur": 33.66699999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4263.393, "dur": 1.8800000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4267.065, "dur": 4.881000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4269.315, "dur": 1.3780000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4275.255, "dur": 10.646999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4281.245, "dur": 1.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4345.255, "dur": 10.524999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4350.058, "dur": 1.904000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4367.227, "dur": 36.98000000000047, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4371.387, "dur": 5.587000000000444, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4374.4, "dur": 1.4840000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4378.517, "dur": 22.80699999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4380.685, "dur": 19.091999999999643, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4384.252, "dur": 2.2999999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4390.022, "dur": 2.230000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4394.492, "dur": 1.1129999999993743, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4397.352, "dur": 1.0029999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4425.102, "dur": 13.286000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4427.744, "dur": 2.3710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4431.852, "dur": 5.3100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 4433.477, "dur": 2.631000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4448.148, "dur": 176.2569999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4450.328, "dur": 1.8489999999992506, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4490.296, "dur": 2.1729999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4533.253, "dur": 14.268000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4537.185, "dur": 5.919999999999163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4539.536, "dur": 2.3369999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4551.866, "dur": 33.51100000000042, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4556.521, "dur": 1.8940000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4560.263, "dur": 4.913000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4562.515, "dur": 1.4510000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4568.489, "dur": 10.473000000000866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4574.362, "dur": 1.1599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4637.105, "dur": 10.57800000000043, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4641.873, "dur": 2.004000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4658.46, "dur": 36.66700000000037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4662.58, "dur": 5.554000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4665.525, "dur": 1.4350000000004002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4669.681, "dur": 22.519000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4671.866, "dur": 18.782000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4675.46, "dur": 2.113999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4680.993, "dur": 2.280999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4685.425, "dur": 1.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4688.203, "dur": 1.0039999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4715.042, "dur": 13.52099999999973, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4717.665, "dur": 2.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4721.753, "dur": 5.420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 4723.527, "dur": 2.600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4737.928, "dur": 175.34799999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4740.202, "dur": 1.962999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4779.659, "dur": 2.1810000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4822.195, "dur": 14.462000000000444, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4826.145, "dur": 6.042999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4828.557, "dur": 2.417000000000371, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4840.908, "dur": 33.61999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4845.514, "dur": 2.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4849.345, "dur": 4.979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4851.642, "dur": 1.4180000000005748, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4857.664, "dur": 10.457000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4863.526, "dur": 1.1890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4925.823, "dur": 10.717999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4930.633, "dur": 1.9650000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4947.455, "dur": 65.3680000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4951.668, "dur": 5.407000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4954.524, "dur": 1.4159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4958.589, "dur": 22.798999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4960.849, "dur": 19.005999999999403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4964.309, "dur": 2.2479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4969.917, "dur": 2.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4974.417, "dur": 1.0509999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4977.335, "dur": 1.0140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5037.288, "dur": 14.615000000000691, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5040.223, "dur": 2.9200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5044.86, "dur": 5.703000000000429, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5046.74, "dur": 2.7979999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5062.309, "dur": 180.9389999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5064.541, "dur": 1.9569999999994252, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5105.277, "dur": 2.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5149.615, "dur": 14.641999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5153.578, "dur": 5.976999999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5155.842, "dur": 2.4729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5168.934, "dur": 34.634000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5173.722, "dur": 1.998000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5177.653, "dur": 4.84099999999944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5179.833, "dur": 1.3810000000003129, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5186.042, "dur": 10.557999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5192.074, "dur": 1.160000000000764, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5256.074, "dur": 10.904000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5260.938, "dur": 2.07799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5277.867, "dur": 37.4340000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5281.943, "dur": 5.515999999999622, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5284.886, "dur": 1.4619999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5288.984, "dur": 23.36199999999917, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5291.323, "dur": 19.438000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5294.787, "dur": 2.399999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5300.799, "dur": 2.543999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5305.48, "dur": 1.0460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5308.349, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5335.975, "dur": 13.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5338.646, "dur": 2.4200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5342.769, "dur": 5.16399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5344.478, "dur": 2.4179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5358.296, "dur": 175.7469999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5360.581, "dur": 1.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5399.795, "dur": 2.1539999999995416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5443.105, "dur": 14.196000000000822, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5446.903, "dur": 5.934999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5449.228, "dur": 2.369999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5461.801, "dur": 33.31700000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5466.693, "dur": 1.894999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5470.323, "dur": 4.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5472.464, "dur": 1.399000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5478.406, "dur": 10.431000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5484.348, "dur": 1.1159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5546.421, "dur": 11.067000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5551.483, "dur": 2.032000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5568.563, "dur": 36.67399999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5572.638, "dur": 5.462999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5575.533, "dur": 1.4669999999996435, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5579.629, "dur": 22.69300000000021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5581.948, "dur": 18.876999999999498, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5585.458, "dur": 2.1450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5591.049, "dur": 2.451000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5595.623, "dur": 1.0650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5598.386, "dur": 1.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5625.399, "dur": 13.342999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5628.009, "dur": 2.3969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5632.198, "dur": 5.26299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5633.839, "dur": 2.600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5648.099, "dur": 173.98399999999947, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5650.522, "dur": 1.8270000000002256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5688.934, "dur": 2.1279999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5731.615, "dur": 14.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5735.587, "dur": 5.938999999999396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5737.839, "dur": 2.4489999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5750.503, "dur": 33.197000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5755.327, "dur": 1.9969999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5759.124, "dur": 4.673999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5761.204, "dur": 1.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5767.148, "dur": 10.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5772.887, "dur": 1.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5834.053, "dur": 10.748000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5839.103, "dur": 1.8969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5855.458, "dur": 36.363000000000284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5859.581, "dur": 5.5479999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5862.555, "dur": 1.4409999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5866.649, "dur": 22.256999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5868.935, "dur": 18.487999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5872.376, "dur": 2.131999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5877.898, "dur": 2.199999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5882.209, "dur": 1.08600000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5884.956, "dur": 1.0289999999995416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5911.728, "dur": 13.045000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5914.335, "dur": 2.3209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5918.38, "dur": 5.167999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5920.068, "dur": 2.457999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5934.015, "dur": 171.97199999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5936.318, "dur": 1.6629999999995562, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5974.289, "dur": 2.1080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6016.057, "dur": 14.164999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6020.03, "dur": 5.833999999999833, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6022.374, "dur": 2.2700000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6034.529, "dur": 32.76999999999953, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6039.287, "dur": 1.91399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6042.984, "dur": 4.711999999999534, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6045.084, "dur": 1.360000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6050.934, "dur": 10.029999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6056.458, "dur": 1.0760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6118.018, "dur": 10.828999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6122.996, "dur": 2.02599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6139.543, "dur": 36.177999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6143.583, "dur": 5.536000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6146.521, "dur": 1.4949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6150.654, "dur": 22.227999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6152.867, "dur": 18.521999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6156.278, "dur": 2.220999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6161.843, "dur": 2.1729999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6166.161, "dur": 1.0850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6168.942, "dur": 1.0140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6195.208, "dur": 13.02100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6197.706, "dur": 2.431999999999789, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6201.862, "dur": 5.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 6203.586, "dur": 2.3969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6217.487, "dur": 172.23499999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6219.786, "dur": 1.84900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6257.761, "dur": 2.094999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6299.939, "dur": 14.420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6303.808, "dur": 6.11200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6306.253, "dur": 2.4340000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6318.635, "dur": 33.27099999999973, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6323.713, "dur": 1.9600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6327.463, "dur": 4.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6329.566, "dur": 1.3130000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6335.448, "dur": 10.09099999999944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6341.084, "dur": 1.1390000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6402.604, "dur": 10.871999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6407.387, "dur": 2.094000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6424.239, "dur": 36.051000000000386, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6428.159, "dur": 5.3969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6431.074, "dur": 1.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6435.062, "dur": 22.346999999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6437.366, "dur": 18.54399999999987, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6440.85, "dur": 2.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6446.205, "dur": 2.28899999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6450.67, "dur": 1.0760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6453.427, "dur": 1.0120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6479.829, "dur": 13.132000000000517, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6482.399, "dur": 2.4459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6486.614, "dur": 5.144000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 6488.267, "dur": 2.4539999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6502.096, "dur": 171.27000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6504.337, "dur": 1.8009999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6542.734, "dur": 2.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6584.402, "dur": 14.760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6588.286, "dur": 5.9210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6590.639, "dur": 2.338999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6603.418, "dur": 32.76299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6608.016, "dur": 1.9729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6611.707, "dur": 4.813999999999396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6613.804, "dur": 1.4660000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6619.764, "dur": 10.131999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6625.444, "dur": 1.139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6685.839, "dur": 15.416000000000167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6690.583, "dur": 1.9920000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6712.283, "dur": 36.74499999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6716.349, "dur": 5.635000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6719.394, "dur": 1.481999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6723.544, "dur": 22.634000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6725.848, "dur": 18.800000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6729.359, "dur": 2.2869999999993524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6734.989, "dur": 2.231999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6739.396, "dur": 1.0380000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6742.144, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6769.24, "dur": 13.085000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6771.849, "dur": 2.394999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6775.945, "dur": 5.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 6777.6, "dur": 2.463999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6791.669, "dur": 171.65599999999995, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6793.915, "dur": 1.6809999999995853, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6831.985, "dur": 2.154000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6874.021, "dur": 14.136000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6877.921, "dur": 5.893000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6880.162, "dur": 2.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6892.617, "dur": 33.19200000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6897.407, "dur": 1.9380000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6901.14, "dur": 4.783999999999651, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6903.204, "dur": 1.3500000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6909.282, "dur": 10.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6915.07, "dur": 1.1660000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6975.757, "dur": 15.972999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6980.839, "dur": 2.356999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7003.044, "dur": 37.909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7007.205, "dur": 5.872000000000298, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7010.316, "dur": 1.4809999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7014.809, "dur": 23.329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7017.207, "dur": 19.453999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7020.839, "dur": 2.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7026.559, "dur": 2.298999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7031.026, "dur": 1.2179999999998472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7034.097, "dur": 1.092000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7061.016, "dur": 15.794000000000779, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7065.536, "dur": 2.5599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7069.884, "dur": 5.622000000000298, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7071.77, "dur": 2.6239999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7086.618, "dur": 182.4989999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7088.802, "dur": 1.8280000000004293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7127.164, "dur": 2.2849999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7169.145, "dur": 15.054999999999382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7173.23, "dur": 6.220000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7175.537, "dur": 2.545999999999367, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7188.764, "dur": 36.18499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7195.635, "dur": 2.131999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7199.768, "dur": 4.942000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7201.884, "dur": 1.4790000000002692, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7207.945, "dur": 10.234000000000378, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7213.709, "dur": 1.1199999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7282.037, "dur": 11.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7287.008, "dur": 2.079000000000633, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7304.294, "dur": 40.30199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7308.527, "dur": 8.128999999999905, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7313.488, "dur": 1.9459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7318.277, "dur": 23.363999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7320.629, "dur": 19.472999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7324.262, "dur": 2.298999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7329.942, "dur": 2.2539999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7334.43, "dur": 1.1790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7337.356, "dur": 1.2030000000004293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7365.887, "dur": 14.783000000000357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7368.407, "dur": 2.2669999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7372.424, "dur": 6.960000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7374.084, "dur": 4.050000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7390.202, "dur": 178.51800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7392.477, "dur": 1.9470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7431.761, "dur": 2.3029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7474.346, "dur": 15.358000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7478.239, "dur": 6.285000000000764, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7480.619, "dur": 2.5510000000003856, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7494.081, "dur": 36.733000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7498.829, "dur": 2.0200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7502.904, "dur": 7.351999999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7505.114, "dur": 1.504000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7513.746, "dur": 10.574999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7519.662, "dur": 1.16399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7581.119, "dur": 10.884000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7586.088, "dur": 2.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7602.591, "dur": 40.07199999999921, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7606.807, "dur": 5.650000000000546, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7609.827, "dur": 1.4520000000002256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7614.108, "dur": 25.67199999999957, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7616.525, "dur": 21.637000000000626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7622.184, "dur": 2.350999999999658, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7628.171, "dur": 2.238999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7632.687, "dur": 1.081000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7635.537, "dur": 1.0869999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7662.519, "dur": 12.985999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7664.987, "dur": 2.2950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7668.965, "dur": 5.224999999999454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7670.67, "dur": 2.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7685.047, "dur": 178.46900000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7687.379, "dur": 3.518000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7728.015, "dur": 2.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7770.108, "dur": 15.313999999999396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7774.116, "dur": 6.390999999999622, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7776.562, "dur": 2.623000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7790.008, "dur": 35.896999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7794.888, "dur": 2.1090000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7798.784, "dur": 4.963000000000648, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7800.987, "dur": 1.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7807.188, "dur": 12.353000000000065, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7813.019, "dur": 1.1219999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7875.92, "dur": 11.220000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7880.867, "dur": 2.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7897.784, "dur": 40.483000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7901.904, "dur": 5.799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7904.937, "dur": 1.550000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7909.61, "dur": 25.735999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7911.967, "dur": 21.71100000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7915.608, "dur": 2.3890000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7921.427, "dur": 2.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7926.107, "dur": 3.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7931.05, "dur": 1.0979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7958.02, "dur": 13.64299999999912, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7960.608, "dur": 2.394000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7964.731, "dur": 5.256000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7966.365, "dur": 2.5100000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7980.627, "dur": 265.39500000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7982.799, "dur": 1.8230000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8021.257, "dur": 2.331000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8063.008, "dur": 14.739999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8066.987, "dur": 5.975000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8069.227, "dur": 2.32300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8082.082, "dur": 124.14300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8086.908, "dur": 2.121999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8090.878, "dur": 93.91200000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8093.03, "dur": 1.4729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8188.962, "dur": 10.774000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8195.257, "dur": 1.1480000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8258.265, "dur": 11.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8263.309, "dur": 1.941000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8279.82, "dur": 36.55500000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8284.03, "dur": 5.290999999999258, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8286.827, "dur": 1.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8290.848, "dur": 22.65400000000045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8293.137, "dur": 18.83299999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8296.756, "dur": 2.1810000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8302.323, "dur": 2.206000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8306.761, "dur": 1.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8309.549, "dur": 1.0009999999983847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8336.13, "dur": 13.301000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8338.67, "dur": 2.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8342.941, "dur": 5.2739999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 8344.711, "dur": 2.4690000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8358.81, "dur": 172.5500000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8360.938, "dur": 1.9529999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8400.146, "dur": 2.194999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8442.377, "dur": 14.063000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8446.208, "dur": 5.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8448.318, "dur": 2.459000000000742, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8460.618, "dur": 33.04700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8465.257, "dur": 1.9099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8469.051, "dur": 4.804000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8471.16, "dur": 1.3909999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8477.148, "dur": 10.21100000000115, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8482.89, "dur": 1.1650000000008731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8543.6, "dur": 10.738999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8548.571, "dur": 1.8739999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8564.617, "dur": 36.925999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8568.811, "dur": 5.507999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8571.765, "dur": 1.47400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8575.84, "dur": 22.826999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8578.245, "dur": 18.878999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8581.825, "dur": 2.072999999998501, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8587.403, "dur": 2.246999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8591.815, "dur": 1.0929999999989377, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8594.618, "dur": 1.006999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8621.265, "dur": 13.194000000001324, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8623.835, "dur": 2.5090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8628.015, "dur": 5.2520000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 8629.677, "dur": 2.5650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8643.615, "dur": 169.78700000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8645.839, "dur": 1.9639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8684.361, "dur": 2.234999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8725.396, "dur": 14.03399999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8729.365, "dur": 5.69800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8731.476, "dur": 2.3469999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8743.726, "dur": 33.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8748.397, "dur": 1.9209999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8752.148, "dur": 4.721000000001368, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8754.23, "dur": 1.430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8760.029, "dur": 10.173999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8765.761, "dur": 1.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8825.377, "dur": 10.78399999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8830.357, "dur": 1.9429999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8846.568, "dur": 37.0570000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8850.678, "dur": 5.5789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8853.56, "dur": 1.5300000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8857.85, "dur": 22.88500000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8860.121, "dur": 19.09700000000157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8863.588, "dur": 2.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8869.237, "dur": 2.188000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8873.805, "dur": 1.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8876.62, "dur": 1.0019999999985885, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8903.062, "dur": 12.933000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8905.622, "dur": 2.269000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8909.555, "dur": 5.1929999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 8911.202, "dur": 2.5210000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8925.195, "dur": 210.46800000000076, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8927.463, "dur": 1.9799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8965.542, "dur": 2.1380000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9042.788, "dur": 15.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9047.005, "dur": 6.0350000000016735, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9049.118, "dur": 2.628999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9062.384, "dur": 34.322000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9067.336, "dur": 2.0760000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9071.26, "dur": 4.6599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9073.323, "dur": 1.3429999999989377, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9079.364, "dur": 10.619000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9085.36, "dur": 1.1479999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9148.116, "dur": 10.701999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9153.024, "dur": 1.8170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9170.016, "dur": 36.98899999999958, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9174.348, "dur": 5.3880000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9177.201, "dur": 1.419000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9181.305, "dur": 22.87199999999939, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9183.824, "dur": 18.816999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9187.265, "dur": 2.1530000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9193.077, "dur": 2.1940000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9197.491, "dur": 1.0540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9200.206, "dur": 0.9969999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9227.261, "dur": 13.269000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9229.837, "dur": 2.3800000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9233.943, "dur": 5.353000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 9235.697, "dur": 2.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9249.97, "dur": 171.74099999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9252.237, "dur": 1.9440000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9290.689, "dur": 2.3069999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9333.026, "dur": 14.024999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9337.001, "dur": 5.6270000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9339.129, "dur": 2.2519999999985885, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9351.365, "dur": 33.07999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9356.1, "dur": 1.868000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9359.795, "dur": 4.643000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9361.871, "dur": 1.2840000000014697, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9367.657, "dur": 10.44800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9373.497, "dur": 1.1460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9434.163, "dur": 10.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9439.06, "dur": 1.868000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9455.16, "dur": 36.37800000000061, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9459.269, "dur": 5.279000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9462.016, "dur": 1.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9466.041, "dur": 22.608000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9468.358, "dur": 18.745999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9472.049, "dur": 1.988999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9477.498, "dur": 2.1630000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9481.838, "dur": 1.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9484.627, "dur": 1.0119999999988067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9511.028, "dur": 13.011000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9513.571, "dur": 2.1149999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9517.463, "dur": 5.253000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 9519.131, "dur": 2.5650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9533.219, "dur": 171.40900000000147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9535.472, "dur": 1.9799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9573.684, "dur": 2.155000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9615.62, "dur": 14.319999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9619.631, "dur": 6.054000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9622.071, "dur": 2.397000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9634.232, "dur": 32.96600000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9638.84, "dur": 1.90099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9642.558, "dur": 4.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9644.718, "dur": 1.4129999999986467, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9650.771, "dur": 10.193999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9656.501, "dur": 1.1479999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9716.557, "dur": 10.448999999998705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9721.17, "dur": 2.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9737.648, "dur": 36.49300000000039, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9741.771, "dur": 5.351999999998952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9744.506, "dur": 1.5169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9748.656, "dur": 22.620999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9750.905, "dur": 18.858000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9754.449, "dur": 2.0759999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9759.828, "dur": 2.478000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9764.425, "dur": 1.0720000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9767.26, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9794.496, "dur": 12.764000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9796.949, "dur": 2.219999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9800.936, "dur": 5.126000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 9802.53, "dur": 2.5119999999988067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9816.369, "dur": 169.97999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9818.741, "dur": 1.819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9856.906, "dur": 2.1999999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9898.319, "dur": 13.909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9902.249, "dur": 5.737999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9904.541, "dur": 2.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9916.547, "dur": 32.97099999999955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9921.328, "dur": 2.018000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9925.188, "dur": 4.653000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9927.269, "dur": 1.3619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9933.142, "dur": 10.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9938.867, "dur": 1.1090000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9998.351, "dur": 10.546999999998661, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10003.204, "dur": 1.9719999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10019.626, "dur": 35.925999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10023.819, "dur": 5.119000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10026.444, "dur": 1.3870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10030.499, "dur": 22.29700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10032.724, "dur": 18.54199999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10036.243, "dur": 2.165999999999258, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10041.719, "dur": 2.1920000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10046.051, "dur": 1.0780000000013388, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10048.809, "dur": 1.0020000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10075.168, "dur": 13.177999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10077.846, "dur": 2.2780000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10081.852, "dur": 5.286000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10083.572, "dur": 2.5560000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10097.121, "dur": 169.8610000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10099.264, "dur": 1.9220000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10137.058, "dur": 2.1859999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10178.238, "dur": 14.44800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10182.161, "dur": 5.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10184.226, "dur": 2.4319999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10196.991, "dur": 32.832000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10201.651, "dur": 1.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10205.404, "dur": 4.673999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10207.484, "dur": 1.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10213.429, "dur": 10.066999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10219.029, "dur": 1.1669999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10278.969, "dur": 10.317000000000917, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10283.67, "dur": 1.8619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10299.804, "dur": 36.0679999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10303.887, "dur": 5.281999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10306.609, "dur": 1.4529999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10310.684, "dur": 22.42500000000109, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10312.912, "dur": 18.693999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10316.426, "dur": 2.1520000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10322.006, "dur": 2.3360000000011496, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10326.452, "dur": 1.0709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10329.183, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10354.986, "dur": 12.851999999998952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10357.512, "dur": 2.2189999999991414, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10361.441, "dur": 5.2259999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10363.089, "dur": 2.5339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10376.784, "dur": 170.63400000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10379.039, "dur": 2.161999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10416.687, "dur": 2.1309999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10458.487, "dur": 14.213999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10462.426, "dur": 5.811999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10464.783, "dur": 2.228000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10476.938, "dur": 32.83400000000074, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10481.589, "dur": 1.8320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10485.229, "dur": 4.873999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10487.336, "dur": 1.5230000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10493.361, "dur": 10.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10499.076, "dur": 1.202000000001135, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10559.103, "dur": 10.493000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10563.799, "dur": 2.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10580.088, "dur": 35.81500000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10584.111, "dur": 5.286999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10586.821, "dur": 1.4580000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10590.924, "dur": 22.18499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10593.138, "dur": 18.50199999999859, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10596.556, "dur": 2.1520000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10602.043, "dur": 2.2399999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10606.463, "dur": 1.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10609.171, "dur": 1.0249999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10635.306, "dur": 13.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10638.072, "dur": 2.308999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10642.116, "dur": 5.155000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10643.738, "dur": 2.525000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10657.745, "dur": 169.0059999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10660.012, "dur": 1.7780000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10697.699, "dur": 2.146999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10738.864, "dur": 13.768000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10742.581, "dur": 5.682999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10744.758, "dur": 2.3060000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10756.811, "dur": 32.96800000000076, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10761.544, "dur": 1.9860000000007858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10765.286, "dur": 4.720999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10767.389, "dur": 1.4020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10773.23, "dur": 10.220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10778.969, "dur": 1.1550000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10838.763, "dur": 10.423999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10843.598, "dur": 1.8240000000005239, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10859.496, "dur": 35.9330000000009, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10863.509, "dur": 5.540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10866.507, "dur": 1.4400000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10870.592, "dur": 22.013999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10872.836, "dur": 18.243000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10876.183, "dur": 2.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10881.578, "dur": 2.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10885.929, "dur": 1.0969999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10888.646, "dur": 1.0049999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10914.741, "dur": 12.889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10917.329, "dur": 2.180000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10921.226, "dur": 5.206000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10922.823, "dur": 2.5749999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10936.999, "dur": 168.95800000000054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10939.119, "dur": 1.7969999999986612, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10977.248, "dur": 2.188000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11018.591, "dur": 13.815999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11022.516, "dur": 5.636000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11024.584, "dur": 2.3369999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11036.551, "dur": 32.36200000000099, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11041.161, "dur": 1.886000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11044.806, "dur": 4.649999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11046.887, "dur": 1.3619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11052.626, "dur": 10.03900000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11058.282, "dur": 1.0750000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11117.617, "dur": 10.55199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11122.382, "dur": 1.8770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11138.449, "dur": 35.5630000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11142.325, "dur": 5.411999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11145.192, "dur": 1.4290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11149.272, "dur": 21.929999999998472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11151.542, "dur": 18.12300000000141, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11154.865, "dur": 2.1740000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11160.322, "dur": 2.0450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11164.472, "dur": 1.0470000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11167.226, "dur": 0.9929999999985739, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11193.149, "dur": 12.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11195.69, "dur": 2.2369999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11199.606, "dur": 5.255000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 11201.222, "dur": 2.6190000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11215.264, "dur": 167.69400000000132, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11217.398, "dur": 1.7210000000013679, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11254.498, "dur": 2.1740000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11295.052, "dur": 14.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11298.959, "dur": 5.75, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11301.067, "dur": 2.4030000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11313.382, "dur": 32.64000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11318.106, "dur": 1.9359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11321.777, "dur": 4.690000000000509, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11323.852, "dur": 1.3979999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11329.622, "dur": 10.14100000000144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11335.343, "dur": 1.1439999999984138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11395.081, "dur": 10.420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11399.832, "dur": 1.8770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11415.592, "dur": 35.78600000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11419.489, "dur": 5.540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11422.452, "dur": 1.4639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11426.551, "dur": 21.985000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11428.783, "dur": 18.26300000000083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11432.156, "dur": 2.161999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11437.639, "dur": 2.1570000000010623, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11441.919, "dur": 1.0850000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11444.619, "dur": 1.0190000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11471.028, "dur": 12.840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11473.465, "dur": 2.256999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11477.428, "dur": 5.242000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 11479.04, "dur": 2.5419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11493.068, "dur": 167.52400000000125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11495.284, "dur": 1.863999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11532.273, "dur": 2.177000000001499, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11573.227, "dur": 14.171999999998661, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11577.204, "dur": 5.843000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11579.382, "dur": 2.42699999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11591.689, "dur": 32.57599999999911, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11596.367, "dur": 1.9380000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11600.08, "dur": 4.610000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11602.132, "dur": 1.2920000000012806, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11607.927, "dur": 10.18499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11613.727, "dur": 1.1299999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11672.137, "dur": 10.572000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11676.886, "dur": 2.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11692.71, "dur": 35.65100000000166, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11696.629, "dur": 5.455999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11699.522, "dur": 1.4219999999986612, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11703.599, "dur": 21.962999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11705.809, "dur": 18.25300000000061, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11709.246, "dur": 2.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11714.662, "dur": 2.144000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11718.939, "dur": 1.0730000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11721.63, "dur": 0.9990000000016153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11747.224, "dur": 12.894000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11749.684, "dur": 2.265000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11753.681, "dur": 5.2479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 11755.278, "dur": 2.6010000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11769.052, "dur": 175.3720000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11771.201, "dur": 4.529000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11811.799, "dur": 2.4129999999986467, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11852.262, "dur": 15.037999999998647, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11856.212, "dur": 6.280000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11858.553, "dur": 2.605999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11871.785, "dur": 35.784999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11876.672, "dur": 1.9509999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11880.65, "dur": 5.029000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11882.804, "dur": 1.4590000000007421, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11888.96, "dur": 10.033000000001266, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11894.564, "dur": 1.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11956.579, "dur": 11.358000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11961.66, "dur": 2.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11978.302, "dur": 39.5630000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11982.389, "dur": 5.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11985.33, "dur": 1.4690000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11989.587, "dur": 25.485000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11992.004, "dur": 21.385999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11995.639, "dur": 2.2010000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12001.245, "dur": 2.3249999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12005.873, "dur": 3.1490000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12010.792, "dur": 1.0730000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12037.224, "dur": 13.194999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12039.932, "dur": 2.4179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12044.037, "dur": 5.119999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 12045.665, "dur": 2.414999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12059.782, "dur": 170.94500000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12061.947, "dur": 1.7749999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12099.137, "dur": 2.149999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12139.182, "dur": 16.484999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12145.085, "dur": 5.997000000001208, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12147.382, "dur": 2.3870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12160.27, "dur": 33.594999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12165.239, "dur": 1.9799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12169.046, "dur": 4.834999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12171.192, "dur": 1.3950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12177.247, "dur": 10.345000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12182.89, "dur": 1.114000000001397, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12242.745, "dur": 12.982999999998356, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12249.744, "dur": 1.9599999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12266.545, "dur": 39.13500000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12270.525, "dur": 5.635000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12273.451, "dur": 1.537000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12277.805, "dur": 23.134000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12280.192, "dur": 19.153000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12283.648, "dur": 2.210000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12289.232, "dur": 2.334999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12293.9, "dur": 1.1380000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12296.758, "dur": 1.0820000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12324.932, "dur": 13.527000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12327.522, "dur": 2.385999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12331.764, "dur": 5.416000000001077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 12333.528, "dur": 2.55199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12347.537, "dur": 172.90300000000025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12349.731, "dur": 1.7510000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12387.342, "dur": 2.1999999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12428.085, "dur": 16.424000000000888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12432.068, "dur": 6.031000000000859, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12434.345, "dur": 2.438000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12448.982, "dur": 34.201999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12454.059, "dur": 2.1710000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12458.012, "dur": 4.915999999999258, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12460.209, "dur": 1.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12466.488, "dur": 10.134000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12472.113, "dur": 1.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12532.729, "dur": 10.927999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12537.593, "dur": 1.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12556.272, "dur": 37.10499999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12560.367, "dur": 5.685999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12563.292, "dur": 1.5050000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12567.713, "dur": 22.847999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12570.027, "dur": 19.016999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12573.453, "dur": 2.2659999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12579.047, "dur": 2.3029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12583.544, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12586.517, "dur": 1.055000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12612.722, "dur": 15.167999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12615.309, "dur": 4.164000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12621.292, "dur": 5.352000000000771, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 12622.981, "dur": 2.5720000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12637.392, "dur": 172.48799999999937, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12639.486, "dur": 1.7639999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12676.93, "dur": 2.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12718.04, "dur": 14.532999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12721.931, "dur": 5.9319999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12724.099, "dur": 2.407999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12736.943, "dur": 35.68000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12741.868, "dur": 2.0100000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12747.598, "dur": 4.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12749.732, "dur": 1.4069999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12755.807, "dur": 10.203999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12761.52, "dur": 1.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12822.158, "dur": 10.726000000000568, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12827.022, "dur": 1.8689999999987776, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12843.302, "dur": 357.41100000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12847.687, "dur": 5.6120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12850.643, "dur": 1.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12854.885, "dur": 23.162000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12857.163, "dur": 19.34900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12860.68, "dur": 2.2299999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12866.425, "dur": 2.3170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12870.957, "dur": 1.172999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12873.833, "dur": 1.168999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13226.107, "dur": 18.572000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13229.171, "dur": 3.3799999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13234.286, "dur": 5.846999999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 13236.245, "dur": 2.833999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13256.348, "dur": 188.47299999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13258.703, "dur": 2.2770000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13300.759, "dur": 2.2600000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13345.467, "dur": 15.515999999999622, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13349.872, "dur": 6.313000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13352.262, "dur": 2.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13365.743, "dur": 38.844999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13370.712, "dur": 2.100000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13374.657, "dur": 5.003000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13376.819, "dur": 1.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13387.019, "dur": 10.813000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13393.272, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13457.153, "dur": 10.891999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13461.964, "dur": 2.0059999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13479.583, "dur": 40.88699999999881, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13483.614, "dur": 5.3289999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13486.321, "dur": 1.5239999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13490.465, "dur": 27.097999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13492.813, "dur": 23.195999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13496.326, "dur": 2.2270000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13506.026, "dur": 2.485000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13510.77, "dur": 1.1189999999987776, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13513.601, "dur": 0.9849999999987631, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13541.271, "dur": 13.073999999998705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13543.746, "dur": 2.4400000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13547.921, "dur": 5.225000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 13549.61, "dur": 2.5309999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13563.806, "dur": 185.3159999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13566.169, "dur": 1.9240000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13604.83, "dur": 5.65099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13651.347, "dur": 14.703999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13655.363, "dur": 6.337000000001353, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13657.954, "dur": 2.5490000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13670.434, "dur": 39.7390000000014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13675.363, "dur": 2.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13679.227, "dur": 4.860999999998967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13681.458, "dur": 1.4069999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13687.433, "dur": 10.292999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13693.218, "dur": 1.201999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13761.508, "dur": 10.622999999999593, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13766.285, "dur": 1.9220000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13783.111, "dur": 40.80199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13787.325, "dur": 5.3619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13790.127, "dur": 1.4249999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13794.223, "dur": 26.806000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13796.498, "dur": 22.941000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13800.148, "dur": 2.3170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13806.012, "dur": 2.377999999998792, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13810.547, "dur": 1.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13816.939, "dur": 1.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13844.699, "dur": 13.260999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13847.159, "dur": 2.7000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13851.561, "dur": 5.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 13853.165, "dur": 2.566999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13867.463, "dur": 176.26200000000063, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13869.732, "dur": 1.8559999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13908.331, "dur": 2.149999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13949.823, "dur": 17.979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13953.853, "dur": 9.590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13956.05, "dur": 6.164000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13972.463, "dur": 33.288000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13977.23, "dur": 2.1130000000011933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13981.174, "dur": 4.6709999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13983.288, "dur": 1.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13989.294, "dur": 10.05999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13994.931, "dur": 1.1000000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14055.909, "dur": 14.498999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14060.769, "dur": 5.612999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14081.666, "dur": 40.45400000000154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14085.834, "dur": 5.627999999998792, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14088.858, "dur": 1.4899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14092.99, "dur": 23.042999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14095.463, "dur": 18.9950000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14098.99, "dur": 2.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14104.68, "dur": 2.132999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14109.18, "dur": 1.0609999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14111.893, "dur": 1.0249999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 14142.281, "dur": 13.451999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14144.73, "dur": 2.5120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 14149.01, "dur": 5.531999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 14150.708, "dur": 2.779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 14165.305, "dur": 176.03899999999885, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14167.482, "dur": 1.8580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 14205.852, "dur": 2.208999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 14247.014, "dur": 14.165000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 14250.846, "dur": 6.006999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14253.086, "dur": 2.5670000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 14269.272, "dur": 33.49199999999837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14274.033, "dur": 2.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 14278.111, "dur": 4.680999999998676, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14280.168, "dur": 1.4130000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 14286.246, "dur": 10.303000000001703, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14292.001, "dur": 1.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14353.828, "dur": 10.895000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14358.894, "dur": 1.9499999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14375.441, "dur": 41.23999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14383.524, "dur": 5.644000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14386.444, "dur": 1.6190000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14390.681, "dur": 23.170000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14393.053, "dur": 19.20100000000093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14396.634, "dur": 2.4089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14402.524, "dur": 2.225000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14406.961, "dur": 1.0850000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14409.769, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 14437.161, "dur": 16.30500000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14439.771, "dur": 2.2600000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 14443.743, "dur": 8.528000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 14448.58, "dur": 2.6810000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 14463.754, "dur": 176.1319999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14466.158, "dur": 2.0310000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 14504.965, "dur": 2.1630000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 14546.329, "dur": 14.154000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 14550.441, "dur": 5.769999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14552.583, "dur": 2.430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 14564.881, "dur": 37.06999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14569.42, "dur": 1.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 14573.254, "dur": 8.468999999999141, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14579.151, "dur": 1.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 14585.126, "dur": 10.260000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14590.881, "dur": 1.1500000000014552, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14652.147, "dur": 10.46099999999933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14657.039, "dur": 1.889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14673.115, "dur": 40.498999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14677.231, "dur": 5.3400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14680.071, "dur": 1.4159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14688.094, "dur": 22.632000000001426, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14690.454, "dur": 18.69499999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14693.924, "dur": 2.2699999999986176, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14699.619, "dur": 2.0819999999985157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14703.904, "dur": 1.0419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14706.654, "dur": 0.9979999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 14733.987, "dur": 13.04200000000128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14736.46, "dur": 2.3260000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 14740.506, "dur": 5.302999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 14742.131, "dur": 2.67200000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 14756.694, "dur": 184.5540000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14762.324, "dur": 2.100000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 14801.16, "dur": 2.103000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 14841.828, "dur": 14.284999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 14845.632, "dur": 6.208000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14848.092, "dur": 2.5339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 14860.705, "dur": 37.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14865.512, "dur": 1.9419999999990978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 14869.304, "dur": 4.789000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14871.501, "dur": 1.381999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 14877.448, "dur": 14.229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14883.188, "dur": 5.0049999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14953.706, "dur": 10.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14958.624, "dur": 1.9500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14975.17, "dur": 42.08899999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14979.429, "dur": 5.402000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14982.284, "dur": 1.4580000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14986.299, "dur": 28.011999999998807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14988.701, "dur": 24.045000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14992.469, "dur": 2.2220000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14998.054, "dur": 7.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15007.491, "dur": 1.102999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15010.244, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15037.831, "dur": 13.192999999999302, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15040.314, "dur": 2.4899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15044.581, "dur": 5.173999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15046.189, "dur": 2.5319999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15060.866, "dur": 181.14799999999923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15063.084, "dur": 1.9259999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15101.403, "dur": 2.138999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 15142.407, "dur": 23.527000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 15155.424, "dur": 6.1599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15157.844, "dur": 2.4909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 15170.554, "dur": 33.40699999999924, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15175.309, "dur": 2.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 15179.187, "dur": 4.734000000000378, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15181.312, "dur": 1.3870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 15187.281, "dur": 10.307999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15193.146, "dur": 1.117999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 15260.584, "dur": 10.903999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15265.564, "dur": 2.0419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 15282.141, "dur": 40.1869999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 15286.326, "dur": 5.355000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15289.092, "dur": 1.4369999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 15293.151, "dur": 26.247999999999593, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 15295.504, "dur": 22.34899999999834, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15298.909, "dur": 2.2919999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 15304.603, "dur": 2.2810000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15309.028, "dur": 1.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15311.986, "dur": 1.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15342.402, "dur": 13.13800000000083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15344.95, "dur": 2.4309999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15349.127, "dur": 5.2259999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15350.76, "dur": 2.5650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15365.229, "dur": 175.5580000000009, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15367.526, "dur": 2.1890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15405.89, "dur": 2.154000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 15446.875, "dur": 17.72700000000077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 15450.67, "dur": 9.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15453.026, "dur": 2.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 15469.121, "dur": 33.68600000000151, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15473.887, "dur": 2.1999999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 15477.955, "dur": 4.789000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15480.099, "dur": 1.4159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 15486.147, "dur": 10.203999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15491.961, "dur": 1.0600000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 15553.255, "dur": 14.300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15558.163, "dur": 1.9030000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 15578.542, "dur": 36.707000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 15582.69, "dur": 5.537000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15585.646, "dur": 1.4759999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 15589.649, "dur": 22.76000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 15592.079, "dur": 18.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15595.726, "dur": 2.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 15601.294, "dur": 2.2049999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15605.607, "dur": 1.1020000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15608.334, "dur": 1.006999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15634.802, "dur": 16.623999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15640.641, "dur": 2.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15644.992, "dur": 5.246999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15646.624, "dur": 2.585000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15661.663, "dur": 175.39899999999943, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15663.851, "dur": 1.7899999999990541, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15702.049, "dur": 2.1569999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 15743.033, "dur": 14.256000000001222, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 15746.888, "dur": 6.019999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15749.092, "dur": 2.563000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 15761.685, "dur": 37.11499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15770.205, "dur": 2.0640000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 15774.144, "dur": 4.806000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15776.233, "dur": 1.5270000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 15782.347, "dur": 10.19300000000112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15788.128, "dur": 1.1019999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 15849.314, "dur": 10.895000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15854.241, "dur": 1.9860000000007858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 15870.992, "dur": 40.57999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 15875.094, "dur": 9.321000000001732, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15881.802, "dur": 1.522000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 15885.873, "dur": 22.77599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 15888.273, "dur": 18.822000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15891.742, "dur": 2.3400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 15897.505, "dur": 2.2670000000016444, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15901.852, "dur": 1.0939999999991414, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15904.634, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15932.022, "dur": 16.242999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15934.586, "dur": 2.378000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15938.674, "dur": 8.3849999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15940.335, "dur": 2.5970000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15958.405, "dur": 173.22999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15960.635, "dur": 1.7860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15998.606, "dur": 2.219999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16039.324, "dur": 14.08299999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16043.224, "dur": 5.907999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16045.464, "dur": 2.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16057.589, "dur": 36.90600000000086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16062.262, "dur": 1.9489999999987049, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16066.03, "dur": 8.253999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16068.104, "dur": 1.2970000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16077.782, "dur": 10.259000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16083.63, "dur": 1.092000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 16143.52, "dur": 10.591999999998734, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16148.323, "dur": 1.9650000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 16164.755, "dur": 40.39000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 16168.816, "dur": 5.547999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16171.792, "dur": 1.423000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 16175.8, "dur": 26.502000000000407, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 16178.09, "dur": 22.664999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16185.269, "dur": 2.3510000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 16191.142, "dur": 2.264999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16195.536, "dur": 1.0889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16198.325, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 16225.2, "dur": 13.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16227.747, "dur": 2.3770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 16231.909, "dur": 5.164000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 16233.504, "dur": 2.52599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 16247.7, "dur": 176.12099999999919, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16249.952, "dur": 4.863000000001193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 16290.575, "dur": 2.209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16331.095, "dur": 14.038000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16335.0, "dur": 5.829999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16337.167, "dur": 2.4170000000012806, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16349.315, "dur": 37.027000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16354.067, "dur": 1.9970000000012078, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16357.925, "dur": 4.621000000001004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16359.973, "dur": 1.3369999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16365.82, "dur": 10.253000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16371.604, "dur": 1.1159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 16435.707, "dur": 10.819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16440.679, "dur": 1.955999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 16457.385, "dur": 39.806000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 16461.45, "dur": 5.576000000000931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16464.482, "dur": 1.4199999999982538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 16468.49, "dur": 25.920999999998457, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 16470.809, "dur": 22.054000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16474.15, "dur": 2.1089999999967404, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 16479.607, "dur": 2.2119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16483.88, "dur": 4.789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16490.362, "dur": 1.0030000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 16517.323, "dur": 13.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16519.805, "dur": 2.4399999999986903, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 16523.99, "dur": 5.172999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 16525.623, "dur": 2.493000000002212, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 16539.903, "dur": 180.65000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16542.048, "dur": 1.639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 16579.925, "dur": 2.121999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16620.532, "dur": 18.988000000001193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16628.53, "dur": 6.170000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16630.867, "dur": 2.588999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16644.075, "dur": 33.008999999998196, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16648.822, "dur": 2.110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16652.788, "dur": 4.641999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16654.884, "dur": 1.3290000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16660.7, "dur": 10.029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16666.296, "dur": 1.1480000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 16733.045, "dur": 14.679000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16741.808, "dur": 1.944999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 16758.829, "dur": 42.29599999999846, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 16762.868, "dur": 5.684000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16765.885, "dur": 1.548000000002503, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 16770.035, "dur": 22.677999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 16772.369, "dur": 18.811000000001513, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16775.713, "dur": 2.367000000002008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 16781.554, "dur": 2.2730000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16785.945, "dur": 1.0790000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16788.713, "dur": 1.0200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 16821.68, "dur": 13.672999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16824.48, "dur": 2.541000000001077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 16828.772, "dur": 5.3729999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 16830.46, "dur": 2.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 16844.704, "dur": 213.11599999999817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16846.905, "dur": 1.669000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 16885.002, "dur": 2.2000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16925.813, "dur": 18.294000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16929.69, "dur": 6.176000000003114, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16932.026, "dur": 2.6039999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16948.855, "dur": 32.97699999999895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16953.635, "dur": 2.040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16957.533, "dur": 4.797000000002299, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16959.64, "dur": 1.4150000000008731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16965.655, "dur": 10.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16971.447, "dur": 1.0449999999982538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17071.484, "dur": 11.731999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17076.883, "dur": 2.1019999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17099.284, "dur": 37.96399999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17103.602, "dur": 5.80199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17106.642, "dur": 1.651000000001659, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17110.92, "dur": 23.455000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17113.284, "dur": 19.559000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17117.044, "dur": 2.355999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 17122.992, "dur": 2.433000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17127.602, "dur": 1.1020000000025902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17130.42, "dur": 1.0050000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 17158.452, "dur": 17.083999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17161.17, "dur": 5.930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 17168.832, "dur": 5.433000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 17170.562, "dur": 2.665999999997439, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 17185.325, "dur": 177.40299999999843, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17187.608, "dur": 1.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 17226.627, "dur": 2.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 17268.162, "dur": 14.532999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 17272.166, "dur": 6.049999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17274.574, "dur": 2.3800000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 17287.07, "dur": 37.29100000000108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17291.793, "dur": 1.9769999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 17299.385, "dur": 4.725000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17301.533, "dur": 1.3689999999987776, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 17307.455, "dur": 10.432999999997264, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17313.442, "dur": 1.1310000000012224, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17375.142, "dur": 10.902999999998428, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17380.121, "dur": 2.0460000000020955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17396.923, "dur": 40.61200000000099, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17401.015, "dur": 9.319999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17403.962, "dur": 1.4830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17411.825, "dur": 22.8279999999977, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17414.151, "dur": 18.965000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17417.693, "dur": 2.297000000002299, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 17423.447, "dur": 2.315999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17427.923, "dur": 1.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17430.671, "dur": 1.011000000002241, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 17457.768, "dur": 16.09899999999834, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17460.333, "dur": 2.4799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 17464.525, "dur": 5.25, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 17466.213, "dur": 2.5200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 17483.876, "dur": 174.81299999999828, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17486.15, "dur": 1.8959999999970023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 17524.053, "dur": 2.2069999999985157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 17565.39, "dur": 14.098000000001775, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 17569.416, "dur": 5.798999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17571.696, "dur": 2.3040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 17583.768, "dur": 36.56499999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17588.503, "dur": 1.9019999999982247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 17592.323, "dur": 4.6120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17594.387, "dur": 1.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 17600.023, "dur": 14.011999999998807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17609.548, "dur": 1.139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17671.214, "dur": 10.954000000001543, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17676.081, "dur": 2.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17692.574, "dur": 40.248999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17696.643, "dur": 5.5459999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17699.628, "dur": 1.4749999999985448, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17703.656, "dur": 26.330000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17705.933, "dur": 22.469999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17709.353, "dur": 2.2160000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 17718.836, "dur": 2.235000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17723.203, "dur": 1.087999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17725.945, "dur": 1.0030000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 17753.173, "dur": 13.189000000002125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17755.721, "dur": 2.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 17759.85, "dur": 5.283999999999651, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 17761.525, "dur": 2.5639999999984866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 17775.974, "dur": 175.81900000000314, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17778.171, "dur": 1.8620000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 17815.673, "dur": 5.417000000001281, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 17860.006, "dur": 14.179000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 17863.845, "dur": 5.82300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17866.088, "dur": 2.3430000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 17878.335, "dur": 36.251000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17883.096, "dur": 1.9589999999989232, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 17886.865, "dur": 4.617999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17888.914, "dur": 1.3289999999979045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 17894.723, "dur": 10.104999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17900.495, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17964.042, "dur": 10.684999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17968.88, "dur": 1.893000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17985.387, "dur": 39.64300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17989.288, "dur": 5.379000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17992.17, "dur": 1.4170000000012806, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17996.091, "dur": 26.12199999999939, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17998.396, "dur": 22.279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18001.908, "dur": 2.1569999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18007.38, "dur": 2.264999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18011.733, "dur": 1.0619999999980791, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18014.447, "dur": 4.724999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18045.532, "dur": 13.013999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18048.01, "dur": 2.4020000000018626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18052.151, "dur": 5.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18053.708, "dur": 2.6150000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18068.192, "dur": 174.53900000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18070.469, "dur": 1.787000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18108.224, "dur": 2.1490000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 18149.511, "dur": 18.423000000002503, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 18153.334, "dur": 10.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18155.614, "dur": 6.555000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 18172.573, "dur": 33.16100000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18177.453, "dur": 2.1229999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 18181.389, "dur": 4.755000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18183.571, "dur": 1.3800000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 18189.549, "dur": 10.156999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18195.316, "dur": 1.1680000000014843, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 18254.926, "dur": 13.970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18259.696, "dur": 5.398000000001048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 18279.888, "dur": 39.36000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 18283.936, "dur": 5.5459999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18286.93, "dur": 1.4310000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 18290.911, "dur": 22.3650000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 18293.361, "dur": 18.36999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18296.896, "dur": 2.238999999997759, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18302.474, "dur": 2.128000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18306.685, "dur": 1.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18309.313, "dur": 0.9900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18339.505, "dur": 13.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18341.945, "dur": 2.3810000000012224, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18346.062, "dur": 5.245999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18347.793, "dur": 2.4949999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18361.875, "dur": 174.92599999999948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18364.148, "dur": 1.805000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18401.216, "dur": 2.2000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 18442.068, "dur": 14.329000000001543, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 18446.042, "dur": 6.004999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18448.375, "dur": 2.440999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 18460.663, "dur": 38.909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18471.221, "dur": 2.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 18475.301, "dur": 4.722000000001572, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18477.436, "dur": 1.3559999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 18483.294, "dur": 10.173999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18489.221, "dur": 1.0629999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 18548.894, "dur": 10.778999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18553.852, "dur": 1.9609999999993306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 18570.331, "dur": 39.77000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 18578.073, "dur": 5.595000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18581.076, "dur": 1.495999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 18585.084, "dur": 22.241000000001804, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 18587.372, "dur": 18.491000000001804, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18590.737, "dur": 2.3040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18596.436, "dur": 2.2409999999981665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18600.751, "dur": 1.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18603.434, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18630.574, "dur": 15.91700000000128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18632.953, "dur": 2.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18636.869, "dur": 8.440000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18641.681, "dur": 2.602999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18656.524, "dur": 174.0659999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18658.794, "dur": 1.9269999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18697.028, "dur": 2.2080000000023574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 18738.303, "dur": 14.159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 18742.285, "dur": 5.819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18744.508, "dur": 2.3649999999979627, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 18756.765, "dur": 36.925999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18761.528, "dur": 2.0380000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 18765.376, "dur": 8.365999999998166, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18771.094, "dur": 1.4419999999990978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 18777.15, "dur": 10.354999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18783.106, "dur": 1.1589999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 18842.796, "dur": 10.572000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18847.603, "dur": 1.9789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 18863.994, "dur": 39.57300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 18867.954, "dur": 5.359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18870.842, "dur": 1.3620000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 18874.729, "dur": 26.01299999999901, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 18880.654, "dur": 18.582000000002154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18884.066, "dur": 2.1959999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18889.664, "dur": 2.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18893.956, "dur": 1.1010000000023865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18896.754, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18923.467, "dur": 12.675999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18925.901, "dur": 2.2109999999993306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18929.797, "dur": 5.174000000002707, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18931.428, "dur": 2.486000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18945.711, "dur": 176.48300000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18951.014, "dur": 1.8400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18988.924, "dur": 2.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19029.812, "dur": 14.28099999999904, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19033.713, "dur": 6.043000000001484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19035.984, "dur": 2.5169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19048.369, "dur": 36.379000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19053.012, "dur": 1.8340000000025611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19056.653, "dur": 4.591000000000349, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19058.749, "dur": 1.2799999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19064.446, "dur": 14.099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19070.324, "dur": 4.919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 19134.425, "dur": 10.495999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19139.191, "dur": 1.9250000000029104, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 19155.357, "dur": 40.004000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 19159.288, "dur": 5.468000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19162.285, "dur": 1.3519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 19166.209, "dur": 26.382000000001426, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 19168.554, "dur": 22.493999999998778, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19172.108, "dur": 2.1850000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 19177.656, "dur": 5.968000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19185.837, "dur": 1.087999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19188.57, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 19215.486, "dur": 13.130000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19217.945, "dur": 2.440999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 19222.097, "dur": 5.3509999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 19223.803, "dur": 2.599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 19237.894, "dur": 172.15199999999822, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19240.091, "dur": 1.8119999999980791, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 19277.546, "dur": 2.1380000000026484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19318.572, "dur": 17.424999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19325.986, "dur": 5.861000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19328.276, "dur": 2.3469999999979336, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19340.502, "dur": 32.72999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19345.149, "dur": 1.9539999999979045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19348.863, "dur": 4.700999999997293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19350.951, "dur": 1.3999999999978172, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19356.962, "dur": 10.066999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19362.663, "dur": 1.120999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 19425.851, "dur": 10.73700000000099, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19430.734, "dur": 1.9700000000011642, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 19447.031, "dur": 39.460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 19450.961, "dur": 5.528000000002066, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19453.956, "dur": 1.441000000002532, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 19457.951, "dur": 25.718000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 19460.341, "dur": 21.790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19463.809, "dur": 2.274999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 19469.424, "dur": 2.069999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19473.617, "dur": 1.055000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19476.303, "dur": 0.9979999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 19506.884, "dur": 13.27900000000227, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19509.341, "dur": 2.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 19513.673, "dur": 5.291000000001077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 19515.412, "dur": 2.528999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 19529.821, "dur": 171.72599999999875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19531.974, "dur": 1.77900000000227, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 19569.144, "dur": 2.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19609.637, "dur": 17.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19613.552, "dur": 9.671000000002095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19615.854, "dur": 2.5900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19631.988, "dur": 32.623999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19636.688, "dur": 2.0930000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19640.605, "dur": 4.778999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19642.709, "dur": 1.444999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19648.573, "dur": 10.02100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19654.337, "dur": 1.1120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 19713.704, "dur": 14.825999999997293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19718.486, "dur": 1.9179999999978463, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 19739.454, "dur": 36.590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 19743.587, "dur": 5.56000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19746.577, "dur": 1.433999999997468, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 19750.597, "dur": 22.63799999999901, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 19752.975, "dur": 18.71100000000297, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19756.367, "dur": 2.3400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 19762.206, "dur": 2.25800000000163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19766.611, "dur": 1.0400000000008731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19769.277, "dur": 0.9980000000032305, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 19795.727, "dur": 16.699000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19801.687, "dur": 2.5899999999965075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 19806.015, "dur": 5.208000000002357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 19807.694, "dur": 2.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 19822.576, "dur": 172.39199999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19824.769, "dur": 1.805000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 19862.344, "dur": 2.1450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19903.292, "dur": 14.183999999997468, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19907.255, "dur": 6.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19909.552, "dur": 2.4569999999985157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19921.527, "dur": 36.41900000000169, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19930.031, "dur": 2.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19933.968, "dur": 4.755000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19936.111, "dur": 1.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19941.992, "dur": 10.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19947.696, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20007.097, "dur": 10.650999999998021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20011.883, "dur": 1.992999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20028.274, "dur": 43.1359999999986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20032.226, "dur": 12.218000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20035.074, "dur": 8.222999999998137, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20045.937, "dur": 22.64799999999741, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20048.337, "dur": 18.707000000002154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20051.897, "dur": 2.2779999999984284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20057.575, "dur": 2.2119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20061.907, "dur": 1.0450000000018917, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20064.578, "dur": 1.0339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20091.677, "dur": 16.32800000000134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20094.25, "dur": 2.4759999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20098.398, "dur": 8.41400000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20100.067, "dur": 2.475000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 20118.269, "dur": 173.51699999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20120.612, "dur": 1.8430000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 20158.862, "dur": 2.144000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 20200.351, "dur": 14.135000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 20204.291, "dur": 5.878000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20206.477, "dur": 2.441000000002532, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 20218.635, "dur": 36.35900000000038, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20223.215, "dur": 1.9540000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 20227.006, "dur": 8.315999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20229.022, "dur": 1.3619999999973516, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 20238.686, "dur": 10.247999999999593, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20244.522, "dur": 1.1299999999973807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20304.192, "dur": 10.47899999999936, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20308.889, "dur": 1.9599999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20325.466, "dur": 40.016999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20329.431, "dur": 5.417999999997846, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20332.306, "dur": 1.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20336.322, "dur": 26.31499999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20338.644, "dur": 22.437999999998283, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20345.877, "dur": 2.264999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20351.563, "dur": 2.231000000003405, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20355.969, "dur": 1.0599999999976717, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20358.646, "dur": 1.0099999999983993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20385.469, "dur": 13.185999999997875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20388.134, "dur": 2.3880000000026484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20392.223, "dur": 5.238999999997759, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20393.836, "dur": 2.5560000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 20408.264, "dur": 176.4429999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20410.486, "dur": 1.7399999999979627, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 20451.946, "dur": 2.1379999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 20492.818, "dur": 13.915000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 20496.627, "dur": 5.788000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20498.825, "dur": 2.3519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 20510.753, "dur": 37.07600000000093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20515.377, "dur": 2.024999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 20519.198, "dur": 4.654999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20521.325, "dur": 1.3129999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 20527.412, "dur": 10.272000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20533.247, "dur": 1.1660000000010768, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20596.826, "dur": 10.40899999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20601.542, "dur": 1.9359999999978754, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20617.735, "dur": 39.947000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20621.757, "dur": 5.3179999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20624.484, "dur": 1.489000000001397, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20628.542, "dur": 26.326999999997497, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20630.887, "dur": 22.4220000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20634.532, "dur": 2.2600000000020373, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20640.097, "dur": 2.274999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20644.484, "dur": 4.797999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20650.907, "dur": 0.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20677.902, "dur": 13.485000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20680.298, "dur": 2.7489999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20684.858, "dur": 5.355999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20686.562, "dur": 2.609999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 20700.429, "dur": 173.06299999999828, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20702.63, "dur": 1.9369999999980791, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 20740.177, "dur": 2.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 20780.877, "dur": 17.93999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 20788.337, "dur": 6.225000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20790.815, "dur": 2.5159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 20803.243, "dur": 33.40600000000268, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20808.034, "dur": 2.0970000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 20811.929, "dur": 5.07300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20814.337, "dur": 1.3889999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 20820.314, "dur": 10.113000000001193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20826.126, "dur": 1.0580000000009022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20885.832, "dur": 13.937000000001717, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20894.05, "dur": 1.8780000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20910.488, "dur": 39.28099999999904, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20914.576, "dur": 5.308999999997468, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20917.285, "dur": 1.4789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20921.344, "dur": 22.453999999997905, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20923.693, "dur": 18.59400000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20927.058, "dur": 2.2289999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20932.675, "dur": 2.3029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20937.09, "dur": 1.1059999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20939.857, "dur": 1.0050000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20969.513, "dur": 13.33599999999933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20972.015, "dur": 2.5750000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20976.309, "dur": 5.3179999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20978.107, "dur": 2.486000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21019.015, "dur": 183.06200000000172, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21021.653, "dur": 2.3840000000018335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21062.75, "dur": 2.2030000000013388, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 21105.369, "dur": 19.12000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 21109.386, "dur": 6.429000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21111.926, "dur": 2.647000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 21129.198, "dur": 34.03600000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21133.833, "dur": 2.1740000000027067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 21137.815, "dur": 5.097000000001572, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21140.195, "dur": 1.4720000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 21146.217, "dur": 10.506999999997788, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21152.284, "dur": 1.1379999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 21214.31, "dur": 10.473999999998341, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21218.898, "dur": 2.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 21239.318, "dur": 36.9320000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 21243.472, "dur": 5.277999999998428, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21246.112, "dur": 1.510999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 21250.208, "dur": 23.264000000002852, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 21252.556, "dur": 19.388999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21256.17, "dur": 2.3550000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 21262.176, "dur": 2.2740000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21266.65, "dur": 1.1419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21269.525, "dur": 1.0199999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 21296.468, "dur": 17.034999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21299.035, "dur": 2.371999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 21306.671, "dur": 5.473000000001775, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 21308.512, "dur": 2.618000000002212, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21323.413, "dur": 173.95999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21325.71, "dur": 1.8330000000023574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21364.077, "dur": 2.2589999999981956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 21404.952, "dur": 14.217999999997119, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 21408.824, "dur": 5.96900000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21411.097, "dur": 2.4509999999972933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 21423.285, "dur": 36.65899999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21427.796, "dur": 1.9370000000017171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 21435.325, "dur": 4.804000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21437.484, "dur": 1.4379999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 21443.47, "dur": 10.237999999997555, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21449.298, "dur": 1.1570000000028813, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 21509.895, "dur": 10.540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21514.678, "dur": 1.955999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 21530.828, "dur": 40.61899999999878, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 21534.83, "dur": 9.343999999997322, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21537.807, "dur": 1.4399999999986903, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 21545.684, "dur": 22.91400000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 21548.013, "dur": 19.074000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21551.507, "dur": 2.282999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 21557.234, "dur": 2.458999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21561.887, "dur": 1.1080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21564.672, "dur": 0.9970000000030268, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 21592.057, "dur": 18.139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21594.544, "dur": 2.187999999998283, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 21598.435, "dur": 5.298999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 21600.172, "dur": 2.5100000000020373, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21620.524, "dur": 175.17399999999907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21622.739, "dur": 1.8669999999983702, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21661.445, "dur": 2.20600000000195, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 21702.787, "dur": 14.222999999998137, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 21706.688, "dur": 5.978000000002794, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21708.938, "dur": 2.4980000000032305, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 21721.378, "dur": 37.279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21726.108, "dur": 1.977999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 21729.899, "dur": 4.651999999998225, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21731.979, "dur": 1.3660000000018044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 21737.988, "dur": 14.610000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21748.072, "dur": 1.0730000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 21807.616, "dur": 10.695999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21812.387, "dur": 2.0159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 21829.123, "dur": 46.57500000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 21833.127, "dur": 5.443999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21836.003, "dur": 1.4439999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 21840.03, "dur": 32.78200000000288, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 21842.344, "dur": 28.89300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21845.817, "dur": 2.246999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 21861.567, "dur": 2.3209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21866.087, "dur": 1.102999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21868.817, "dur": 1.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 21896.347, "dur": 13.356999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21899.012, "dur": 2.360000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 21903.123, "dur": 5.334999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 21904.75, "dur": 2.6820000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21919.203, "dur": 178.84499999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21921.305, "dur": 1.9429999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21959.662, "dur": 5.56499999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 22005.754, "dur": 14.170999999998457, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 22009.51, "dur": 5.966000000000349, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22011.736, "dur": 2.503000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 22024.213, "dur": 36.46299999999974, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22028.863, "dur": 2.024999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 22032.709, "dur": 4.6010000000023865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22034.809, "dur": 1.2769999999982247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 22040.653, "dur": 10.210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22046.563, "dur": 1.1120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 22110.036, "dur": 10.880000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22114.959, "dur": 2.044000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 22131.643, "dur": 39.9429999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 22135.666, "dur": 5.329999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22138.474, "dur": 1.4130000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 22142.49, "dur": 26.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 22144.833, "dur": 22.41400000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22148.311, "dur": 2.275999999998021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 22153.93, "dur": 2.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22158.336, "dur": 1.0900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22161.006, "dur": 4.7369999999973516, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 22191.679, "dur": 13.298999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22194.179, "dur": 2.559000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 22198.505, "dur": 5.27100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 22200.148, "dur": 2.602999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 22214.093, "dur": 178.10399999999936, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22216.31, "dur": 1.6659999999974389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 22253.785, "dur": 2.0469999999986612, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 22294.747, "dur": 17.93800000000192, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 22298.605, "dur": 9.68999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22300.83, "dur": 6.227999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 22317.564, "dur": 33.119000000002416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22322.178, "dur": 2.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 22326.167, "dur": 4.764999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22328.292, "dur": 1.3979999999974098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 22334.311, "dur": 10.086999999999534, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22340.165, "dur": 1.0429999999978463, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 22404.448, "dur": 13.995999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22409.448, "dur": 5.126000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 22429.285, "dur": 36.41100000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 22433.379, "dur": 5.504000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22436.31, "dur": 1.4389999999984866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 22440.294, "dur": 22.65599999999904, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 22442.678, "dur": 18.77600000000166, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22446.068, "dur": 2.2109999999993306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 22451.757, "dur": 2.290999999997439, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22456.178, "dur": 1.1120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22459.005, "dur": 1.0309999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 22489.336, "dur": 13.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22491.959, "dur": 2.5339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 22496.269, "dur": 5.059000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 22497.89, "dur": 2.4089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 22511.789, "dur": 173.29000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22513.916, "dur": 1.8799999999973807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 22551.526, "dur": 2.0679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 22592.626, "dur": 14.209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 22596.473, "dur": 6.05199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22598.69, "dur": 2.6130000000011933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 22611.098, "dur": 36.536999999996624, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22619.605, "dur": 2.114000000001397, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 22623.578, "dur": 4.7520000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22625.728, "dur": 1.3580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 22631.556, "dur": 10.023000000001048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22637.374, "dur": 1.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}] \ No newline at end of file diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index ce2295092763d..953f04c622c4b 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -245,6 +245,12 @@ def _rank_zero_only_wrap(self) -> None: def start(self, action_name: str) -> None: if not self._profiler_instantiated: + + # close profiler is already opened + try: + torch.autograd._disable_profiler() + except (AttributeError, RuntimeError): + pass self._create_profilers() From e565e8a41a8826e5b7f10cde9db8f6838b9b4718 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 14:36:34 +0000 Subject: [PATCH 025/126] update --- 0_trace.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 0_trace.json diff --git a/0_trace.json b/0_trace.json deleted file mode 100644 index c86b649ec22a0..0000000000000 --- a/0_trace.json +++ /dev/null @@ -1 +0,0 @@ -[{"name": "aten::is_floating_point", "ph": "X", "ts": 129.565, "dur": 2.926000000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 138.162, "dur": 2.0960000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 148.114, "dur": 1.7849999999999966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::set_data", "ph": "X", "ts": 155.128, "dur": 5.027000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 157.16, "dur": 1.1049999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::is_floating_point", "ph": "X", "ts": 178.132, "dur": 1.2519999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 182.618, "dur": 1.5870000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 189.559, "dur": 1.1850000000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::set_data", "ph": "X", "ts": 193.925, "dur": 3.5600000000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_has_compatible_shallow_copy_type", "ph": "X", "ts": 195.186, "dur": 1.054000000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::randn", "ph": "X", "ts": 2570.025, "dur": 61.822000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2574.206, "dur": 5.308999999999742, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::normal_", "ph": "X", "ts": 2582.046, "dur": 48.271000000000186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3221.996, "dur": 5.288000000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::random_", "ph": "X", "ts": 3308.647, "dur": 11.412000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::is_floating_point", "ph": "X", "ts": 3326.955, "dur": 1.5470000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::item", "ph": "X", "ts": 3339.945, "dur": 8.588999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_local_scalar_dense", "ph": "X", "ts": 3342.775, "dur": 4.529999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3376.418, "dur": 12.985999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3381.765, "dur": 2.762000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3413.297, "dur": 40.929999999999836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3417.855, "dur": 5.887000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3420.842, "dur": 1.7329999999997199, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3425.337, "dur": 25.809999999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3428.012, "dur": 21.442000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3432.097, "dur": 2.5599999999999454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3438.643, "dur": 2.844000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3443.968, "dur": 1.167000000000371, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3446.78, "dur": 1.0949999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3481.682, "dur": 14.400000000000091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3484.174, "dur": 2.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3488.937, "dur": 5.876999999999953, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 3490.979, "dur": 2.7530000000001564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3509.096, "dur": 219.07200000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3511.332, "dur": 2.104000000000269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3564.824, "dur": 2.40099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3620.72, "dur": 15.432000000000244, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3624.747, "dur": 6.519999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3627.284, "dur": 2.7229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3641.587, "dur": 37.67599999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3646.704, "dur": 2.1929999999997563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3650.847, "dur": 5.239999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3653.339, "dur": 1.51299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3659.861, "dur": 11.55600000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3666.495, "dur": 1.1730000000002292, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3742.0, "dur": 11.407999999999902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3747.237, "dur": 2.0709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3765.534, "dur": 38.2829999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3770.058, "dur": 5.657000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3773.123, "dur": 1.4490000000000691, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3777.252, "dur": 23.610999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3779.628, "dur": 19.690999999999804, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3783.274, "dur": 2.32300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3789.318, "dur": 2.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3793.897, "dur": 1.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3796.838, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3826.407, "dur": 13.891999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3829.028, "dur": 2.5700000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3833.259, "dur": 5.686000000000149, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 3835.103, "dur": 2.811999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3850.685, "dur": 186.70000000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3852.843, "dur": 1.844000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3895.115, "dur": 2.22400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3941.402, "dur": 14.891999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3945.592, "dur": 6.195999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3947.987, "dur": 2.5470000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3961.284, "dur": 34.723999999999705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3965.928, "dur": 2.1920000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3969.975, "dur": 4.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3972.225, "dur": 1.3580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3978.356, "dur": 10.846999999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 3984.505, "dur": 1.1970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4050.305, "dur": 10.524000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4055.12, "dur": 1.8769999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4072.075, "dur": 37.07999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4076.189, "dur": 5.639000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4079.298, "dur": 1.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4083.375, "dur": 22.822000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4085.648, "dur": 19.01800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4089.173, "dur": 2.0950000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4094.835, "dur": 2.2299999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4099.441, "dur": 1.0450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4102.202, "dur": 1.0159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4130.637, "dur": 13.369000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4133.205, "dur": 2.3410000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4137.278, "dur": 5.436999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 4138.995, "dur": 2.693000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4153.926, "dur": 178.6389999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4156.217, "dur": 1.7510000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4195.988, "dur": 2.199999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4240.027, "dur": 14.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4243.885, "dur": 6.010000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4246.327, "dur": 2.3599999999996726, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4258.8, "dur": 33.66699999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4263.393, "dur": 1.8800000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4267.065, "dur": 4.881000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4269.315, "dur": 1.3780000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4275.255, "dur": 10.646999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4281.245, "dur": 1.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4345.255, "dur": 10.524999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4350.058, "dur": 1.904000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4367.227, "dur": 36.98000000000047, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4371.387, "dur": 5.587000000000444, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4374.4, "dur": 1.4840000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4378.517, "dur": 22.80699999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4380.685, "dur": 19.091999999999643, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4384.252, "dur": 2.2999999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4390.022, "dur": 2.230000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4394.492, "dur": 1.1129999999993743, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4397.352, "dur": 1.0029999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4425.102, "dur": 13.286000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4427.744, "dur": 2.3710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4431.852, "dur": 5.3100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 4433.477, "dur": 2.631000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4448.148, "dur": 176.2569999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4450.328, "dur": 1.8489999999992506, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4490.296, "dur": 2.1729999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4533.253, "dur": 14.268000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4537.185, "dur": 5.919999999999163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4539.536, "dur": 2.3369999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4551.866, "dur": 33.51100000000042, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4556.521, "dur": 1.8940000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4560.263, "dur": 4.913000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4562.515, "dur": 1.4510000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4568.489, "dur": 10.473000000000866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4574.362, "dur": 1.1599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4637.105, "dur": 10.57800000000043, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4641.873, "dur": 2.004000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4658.46, "dur": 36.66700000000037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4662.58, "dur": 5.554000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4665.525, "dur": 1.4350000000004002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4669.681, "dur": 22.519000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4671.866, "dur": 18.782000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4675.46, "dur": 2.113999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4680.993, "dur": 2.280999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4685.425, "dur": 1.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4688.203, "dur": 1.0039999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4715.042, "dur": 13.52099999999973, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4717.665, "dur": 2.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4721.753, "dur": 5.420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 4723.527, "dur": 2.600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4737.928, "dur": 175.34799999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4740.202, "dur": 1.962999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4779.659, "dur": 2.1810000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4822.195, "dur": 14.462000000000444, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4826.145, "dur": 6.042999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4828.557, "dur": 2.417000000000371, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4840.908, "dur": 33.61999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4845.514, "dur": 2.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4849.345, "dur": 4.979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4851.642, "dur": 1.4180000000005748, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4857.664, "dur": 10.457000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4863.526, "dur": 1.1890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4925.823, "dur": 10.717999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4930.633, "dur": 1.9650000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4947.455, "dur": 65.3680000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4951.668, "dur": 5.407000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4954.524, "dur": 1.4159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4958.589, "dur": 22.798999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4960.849, "dur": 19.005999999999403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4964.309, "dur": 2.2479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4969.917, "dur": 2.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4974.417, "dur": 1.0509999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 4977.335, "dur": 1.0140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5037.288, "dur": 14.615000000000691, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5040.223, "dur": 2.9200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5044.86, "dur": 5.703000000000429, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5046.74, "dur": 2.7979999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5062.309, "dur": 180.9389999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5064.541, "dur": 1.9569999999994252, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5105.277, "dur": 2.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5149.615, "dur": 14.641999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5153.578, "dur": 5.976999999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5155.842, "dur": 2.4729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5168.934, "dur": 34.634000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5173.722, "dur": 1.998000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5177.653, "dur": 4.84099999999944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5179.833, "dur": 1.3810000000003129, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5186.042, "dur": 10.557999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5192.074, "dur": 1.160000000000764, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5256.074, "dur": 10.904000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5260.938, "dur": 2.07799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5277.867, "dur": 37.4340000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5281.943, "dur": 5.515999999999622, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5284.886, "dur": 1.4619999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5288.984, "dur": 23.36199999999917, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5291.323, "dur": 19.438000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5294.787, "dur": 2.399999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5300.799, "dur": 2.543999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5305.48, "dur": 1.0460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5308.349, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5335.975, "dur": 13.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5338.646, "dur": 2.4200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5342.769, "dur": 5.16399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5344.478, "dur": 2.4179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5358.296, "dur": 175.7469999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5360.581, "dur": 1.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5399.795, "dur": 2.1539999999995416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5443.105, "dur": 14.196000000000822, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5446.903, "dur": 5.934999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5449.228, "dur": 2.369999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5461.801, "dur": 33.31700000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5466.693, "dur": 1.894999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5470.323, "dur": 4.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5472.464, "dur": 1.399000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5478.406, "dur": 10.431000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5484.348, "dur": 1.1159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5546.421, "dur": 11.067000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5551.483, "dur": 2.032000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5568.563, "dur": 36.67399999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5572.638, "dur": 5.462999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5575.533, "dur": 1.4669999999996435, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5579.629, "dur": 22.69300000000021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5581.948, "dur": 18.876999999999498, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5585.458, "dur": 2.1450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5591.049, "dur": 2.451000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5595.623, "dur": 1.0650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5598.386, "dur": 1.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5625.399, "dur": 13.342999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5628.009, "dur": 2.3969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5632.198, "dur": 5.26299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5633.839, "dur": 2.600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5648.099, "dur": 173.98399999999947, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5650.522, "dur": 1.8270000000002256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5688.934, "dur": 2.1279999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5731.615, "dur": 14.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5735.587, "dur": 5.938999999999396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5737.839, "dur": 2.4489999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5750.503, "dur": 33.197000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5755.327, "dur": 1.9969999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5759.124, "dur": 4.673999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5761.204, "dur": 1.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5767.148, "dur": 10.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5772.887, "dur": 1.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5834.053, "dur": 10.748000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5839.103, "dur": 1.8969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5855.458, "dur": 36.363000000000284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5859.581, "dur": 5.5479999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5862.555, "dur": 1.4409999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5866.649, "dur": 22.256999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5868.935, "dur": 18.487999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5872.376, "dur": 2.131999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5877.898, "dur": 2.199999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5882.209, "dur": 1.08600000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 5884.956, "dur": 1.0289999999995416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5911.728, "dur": 13.045000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5914.335, "dur": 2.3209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5918.38, "dur": 5.167999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 5920.068, "dur": 2.457999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5934.015, "dur": 171.97199999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5936.318, "dur": 1.6629999999995562, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5974.289, "dur": 2.1080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6016.057, "dur": 14.164999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6020.03, "dur": 5.833999999999833, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6022.374, "dur": 2.2700000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6034.529, "dur": 32.76999999999953, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6039.287, "dur": 1.91399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6042.984, "dur": 4.711999999999534, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6045.084, "dur": 1.360000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6050.934, "dur": 10.029999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6056.458, "dur": 1.0760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6118.018, "dur": 10.828999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6122.996, "dur": 2.02599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6139.543, "dur": 36.177999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6143.583, "dur": 5.536000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6146.521, "dur": 1.4949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6150.654, "dur": 22.227999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6152.867, "dur": 18.521999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6156.278, "dur": 2.220999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6161.843, "dur": 2.1729999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6166.161, "dur": 1.0850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6168.942, "dur": 1.0140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6195.208, "dur": 13.02100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6197.706, "dur": 2.431999999999789, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6201.862, "dur": 5.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 6203.586, "dur": 2.3969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6217.487, "dur": 172.23499999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6219.786, "dur": 1.84900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6257.761, "dur": 2.094999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6299.939, "dur": 14.420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6303.808, "dur": 6.11200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6306.253, "dur": 2.4340000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6318.635, "dur": 33.27099999999973, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6323.713, "dur": 1.9600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6327.463, "dur": 4.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6329.566, "dur": 1.3130000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6335.448, "dur": 10.09099999999944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6341.084, "dur": 1.1390000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6402.604, "dur": 10.871999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6407.387, "dur": 2.094000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6424.239, "dur": 36.051000000000386, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6428.159, "dur": 5.3969999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6431.074, "dur": 1.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6435.062, "dur": 22.346999999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6437.366, "dur": 18.54399999999987, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6440.85, "dur": 2.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6446.205, "dur": 2.28899999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6450.67, "dur": 1.0760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6453.427, "dur": 1.0120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6479.829, "dur": 13.132000000000517, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6482.399, "dur": 2.4459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6486.614, "dur": 5.144000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 6488.267, "dur": 2.4539999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6502.096, "dur": 171.27000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6504.337, "dur": 1.8009999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6542.734, "dur": 2.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6584.402, "dur": 14.760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6588.286, "dur": 5.9210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6590.639, "dur": 2.338999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6603.418, "dur": 32.76299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6608.016, "dur": 1.9729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6611.707, "dur": 4.813999999999396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6613.804, "dur": 1.4660000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6619.764, "dur": 10.131999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6625.444, "dur": 1.139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6685.839, "dur": 15.416000000000167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6690.583, "dur": 1.9920000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6712.283, "dur": 36.74499999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6716.349, "dur": 5.635000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6719.394, "dur": 1.481999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6723.544, "dur": 22.634000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6725.848, "dur": 18.800000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6729.359, "dur": 2.2869999999993524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6734.989, "dur": 2.231999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6739.396, "dur": 1.0380000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6742.144, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6769.24, "dur": 13.085000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6771.849, "dur": 2.394999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6775.945, "dur": 5.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 6777.6, "dur": 2.463999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6791.669, "dur": 171.65599999999995, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6793.915, "dur": 1.6809999999995853, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6831.985, "dur": 2.154000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6874.021, "dur": 14.136000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6877.921, "dur": 5.893000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6880.162, "dur": 2.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6892.617, "dur": 33.19200000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6897.407, "dur": 1.9380000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6901.14, "dur": 4.783999999999651, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6903.204, "dur": 1.3500000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6909.282, "dur": 10.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 6915.07, "dur": 1.1660000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6975.757, "dur": 15.972999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6980.839, "dur": 2.356999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7003.044, "dur": 37.909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7007.205, "dur": 5.872000000000298, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7010.316, "dur": 1.4809999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7014.809, "dur": 23.329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7017.207, "dur": 19.453999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7020.839, "dur": 2.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7026.559, "dur": 2.298999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7031.026, "dur": 1.2179999999998472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7034.097, "dur": 1.092000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7061.016, "dur": 15.794000000000779, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7065.536, "dur": 2.5599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7069.884, "dur": 5.622000000000298, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7071.77, "dur": 2.6239999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7086.618, "dur": 182.4989999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7088.802, "dur": 1.8280000000004293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7127.164, "dur": 2.2849999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7169.145, "dur": 15.054999999999382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7173.23, "dur": 6.220000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7175.537, "dur": 2.545999999999367, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7188.764, "dur": 36.18499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7195.635, "dur": 2.131999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7199.768, "dur": 4.942000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7201.884, "dur": 1.4790000000002692, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7207.945, "dur": 10.234000000000378, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7213.709, "dur": 1.1199999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7282.037, "dur": 11.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7287.008, "dur": 2.079000000000633, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7304.294, "dur": 40.30199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7308.527, "dur": 8.128999999999905, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7313.488, "dur": 1.9459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7318.277, "dur": 23.363999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7320.629, "dur": 19.472999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7324.262, "dur": 2.298999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7329.942, "dur": 2.2539999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7334.43, "dur": 1.1790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7337.356, "dur": 1.2030000000004293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7365.887, "dur": 14.783000000000357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7368.407, "dur": 2.2669999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7372.424, "dur": 6.960000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7374.084, "dur": 4.050000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7390.202, "dur": 178.51800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7392.477, "dur": 1.9470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7431.761, "dur": 2.3029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7474.346, "dur": 15.358000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7478.239, "dur": 6.285000000000764, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7480.619, "dur": 2.5510000000003856, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7494.081, "dur": 36.733000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7498.829, "dur": 2.0200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7502.904, "dur": 7.351999999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7505.114, "dur": 1.504000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7513.746, "dur": 10.574999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7519.662, "dur": 1.16399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7581.119, "dur": 10.884000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7586.088, "dur": 2.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7602.591, "dur": 40.07199999999921, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7606.807, "dur": 5.650000000000546, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7609.827, "dur": 1.4520000000002256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7614.108, "dur": 25.67199999999957, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7616.525, "dur": 21.637000000000626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7622.184, "dur": 2.350999999999658, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7628.171, "dur": 2.238999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7632.687, "dur": 1.081000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7635.537, "dur": 1.0869999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7662.519, "dur": 12.985999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7664.987, "dur": 2.2950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7668.965, "dur": 5.224999999999454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7670.67, "dur": 2.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7685.047, "dur": 178.46900000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7687.379, "dur": 3.518000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7728.015, "dur": 2.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7770.108, "dur": 15.313999999999396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7774.116, "dur": 6.390999999999622, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7776.562, "dur": 2.623000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7790.008, "dur": 35.896999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7794.888, "dur": 2.1090000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7798.784, "dur": 4.963000000000648, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7800.987, "dur": 1.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7807.188, "dur": 12.353000000000065, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7813.019, "dur": 1.1219999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7875.92, "dur": 11.220000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7880.867, "dur": 2.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7897.784, "dur": 40.483000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7901.904, "dur": 5.799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7904.937, "dur": 1.550000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7909.61, "dur": 25.735999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7911.967, "dur": 21.71100000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7915.608, "dur": 2.3890000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7921.427, "dur": 2.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7926.107, "dur": 3.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 7931.05, "dur": 1.0979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7958.02, "dur": 13.64299999999912, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7960.608, "dur": 2.394000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7964.731, "dur": 5.256000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 7966.365, "dur": 2.5100000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7980.627, "dur": 265.39500000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7982.799, "dur": 1.8230000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8021.257, "dur": 2.331000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8063.008, "dur": 14.739999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8066.987, "dur": 5.975000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8069.227, "dur": 2.32300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8082.082, "dur": 124.14300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8086.908, "dur": 2.121999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8090.878, "dur": 93.91200000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8093.03, "dur": 1.4729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8188.962, "dur": 10.774000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8195.257, "dur": 1.1480000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8258.265, "dur": 11.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8263.309, "dur": 1.941000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8279.82, "dur": 36.55500000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8284.03, "dur": 5.290999999999258, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8286.827, "dur": 1.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8290.848, "dur": 22.65400000000045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8293.137, "dur": 18.83299999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8296.756, "dur": 2.1810000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8302.323, "dur": 2.206000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8306.761, "dur": 1.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8309.549, "dur": 1.0009999999983847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8336.13, "dur": 13.301000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8338.67, "dur": 2.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8342.941, "dur": 5.2739999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 8344.711, "dur": 2.4690000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8358.81, "dur": 172.5500000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8360.938, "dur": 1.9529999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8400.146, "dur": 2.194999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8442.377, "dur": 14.063000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8446.208, "dur": 5.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8448.318, "dur": 2.459000000000742, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8460.618, "dur": 33.04700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8465.257, "dur": 1.9099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8469.051, "dur": 4.804000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8471.16, "dur": 1.3909999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8477.148, "dur": 10.21100000000115, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8482.89, "dur": 1.1650000000008731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8543.6, "dur": 10.738999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8548.571, "dur": 1.8739999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8564.617, "dur": 36.925999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8568.811, "dur": 5.507999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8571.765, "dur": 1.47400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8575.84, "dur": 22.826999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8578.245, "dur": 18.878999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8581.825, "dur": 2.072999999998501, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8587.403, "dur": 2.246999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8591.815, "dur": 1.0929999999989377, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8594.618, "dur": 1.006999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8621.265, "dur": 13.194000000001324, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8623.835, "dur": 2.5090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8628.015, "dur": 5.2520000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 8629.677, "dur": 2.5650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8643.615, "dur": 169.78700000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8645.839, "dur": 1.9639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8684.361, "dur": 2.234999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8725.396, "dur": 14.03399999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8729.365, "dur": 5.69800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8731.476, "dur": 2.3469999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8743.726, "dur": 33.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8748.397, "dur": 1.9209999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8752.148, "dur": 4.721000000001368, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8754.23, "dur": 1.430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8760.029, "dur": 10.173999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8765.761, "dur": 1.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8825.377, "dur": 10.78399999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8830.357, "dur": 1.9429999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8846.568, "dur": 37.0570000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8850.678, "dur": 5.5789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8853.56, "dur": 1.5300000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8857.85, "dur": 22.88500000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8860.121, "dur": 19.09700000000157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8863.588, "dur": 2.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8869.237, "dur": 2.188000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8873.805, "dur": 1.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 8876.62, "dur": 1.0019999999985885, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8903.062, "dur": 12.933000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8905.622, "dur": 2.269000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8909.555, "dur": 5.1929999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 8911.202, "dur": 2.5210000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8925.195, "dur": 210.46800000000076, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8927.463, "dur": 1.9799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8965.542, "dur": 2.1380000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9042.788, "dur": 15.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9047.005, "dur": 6.0350000000016735, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9049.118, "dur": 2.628999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9062.384, "dur": 34.322000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9067.336, "dur": 2.0760000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9071.26, "dur": 4.6599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9073.323, "dur": 1.3429999999989377, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9079.364, "dur": 10.619000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9085.36, "dur": 1.1479999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9148.116, "dur": 10.701999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9153.024, "dur": 1.8170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9170.016, "dur": 36.98899999999958, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9174.348, "dur": 5.3880000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9177.201, "dur": 1.419000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9181.305, "dur": 22.87199999999939, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9183.824, "dur": 18.816999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9187.265, "dur": 2.1530000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9193.077, "dur": 2.1940000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9197.491, "dur": 1.0540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9200.206, "dur": 0.9969999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9227.261, "dur": 13.269000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9229.837, "dur": 2.3800000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9233.943, "dur": 5.353000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 9235.697, "dur": 2.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9249.97, "dur": 171.74099999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9252.237, "dur": 1.9440000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9290.689, "dur": 2.3069999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9333.026, "dur": 14.024999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9337.001, "dur": 5.6270000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9339.129, "dur": 2.2519999999985885, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9351.365, "dur": 33.07999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9356.1, "dur": 1.868000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9359.795, "dur": 4.643000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9361.871, "dur": 1.2840000000014697, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9367.657, "dur": 10.44800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9373.497, "dur": 1.1460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9434.163, "dur": 10.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9439.06, "dur": 1.868000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9455.16, "dur": 36.37800000000061, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9459.269, "dur": 5.279000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9462.016, "dur": 1.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9466.041, "dur": 22.608000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9468.358, "dur": 18.745999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9472.049, "dur": 1.988999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9477.498, "dur": 2.1630000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9481.838, "dur": 1.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9484.627, "dur": 1.0119999999988067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9511.028, "dur": 13.011000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9513.571, "dur": 2.1149999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9517.463, "dur": 5.253000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 9519.131, "dur": 2.5650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9533.219, "dur": 171.40900000000147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9535.472, "dur": 1.9799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9573.684, "dur": 2.155000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9615.62, "dur": 14.319999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9619.631, "dur": 6.054000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9622.071, "dur": 2.397000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9634.232, "dur": 32.96600000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9638.84, "dur": 1.90099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9642.558, "dur": 4.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9644.718, "dur": 1.4129999999986467, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9650.771, "dur": 10.193999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9656.501, "dur": 1.1479999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9716.557, "dur": 10.448999999998705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9721.17, "dur": 2.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9737.648, "dur": 36.49300000000039, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9741.771, "dur": 5.351999999998952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9744.506, "dur": 1.5169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9748.656, "dur": 22.620999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9750.905, "dur": 18.858000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9754.449, "dur": 2.0759999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9759.828, "dur": 2.478000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9764.425, "dur": 1.0720000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9767.26, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9794.496, "dur": 12.764000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9796.949, "dur": 2.219999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9800.936, "dur": 5.126000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 9802.53, "dur": 2.5119999999988067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9816.369, "dur": 169.97999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9818.741, "dur": 1.819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9856.906, "dur": 2.1999999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9898.319, "dur": 13.909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9902.249, "dur": 5.737999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9904.541, "dur": 2.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9916.547, "dur": 32.97099999999955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9921.328, "dur": 2.018000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9925.188, "dur": 4.653000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9927.269, "dur": 1.3619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9933.142, "dur": 10.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 9938.867, "dur": 1.1090000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9998.351, "dur": 10.546999999998661, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10003.204, "dur": 1.9719999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10019.626, "dur": 35.925999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10023.819, "dur": 5.119000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10026.444, "dur": 1.3870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10030.499, "dur": 22.29700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10032.724, "dur": 18.54199999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10036.243, "dur": 2.165999999999258, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10041.719, "dur": 2.1920000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10046.051, "dur": 1.0780000000013388, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10048.809, "dur": 1.0020000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10075.168, "dur": 13.177999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10077.846, "dur": 2.2780000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10081.852, "dur": 5.286000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10083.572, "dur": 2.5560000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10097.121, "dur": 169.8610000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10099.264, "dur": 1.9220000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10137.058, "dur": 2.1859999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10178.238, "dur": 14.44800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10182.161, "dur": 5.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10184.226, "dur": 2.4319999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10196.991, "dur": 32.832000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10201.651, "dur": 1.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10205.404, "dur": 4.673999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10207.484, "dur": 1.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10213.429, "dur": 10.066999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10219.029, "dur": 1.1669999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10278.969, "dur": 10.317000000000917, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10283.67, "dur": 1.8619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10299.804, "dur": 36.0679999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10303.887, "dur": 5.281999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10306.609, "dur": 1.4529999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10310.684, "dur": 22.42500000000109, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10312.912, "dur": 18.693999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10316.426, "dur": 2.1520000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10322.006, "dur": 2.3360000000011496, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10326.452, "dur": 1.0709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10329.183, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10354.986, "dur": 12.851999999998952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10357.512, "dur": 2.2189999999991414, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10361.441, "dur": 5.2259999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10363.089, "dur": 2.5339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10376.784, "dur": 170.63400000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10379.039, "dur": 2.161999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10416.687, "dur": 2.1309999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10458.487, "dur": 14.213999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10462.426, "dur": 5.811999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10464.783, "dur": 2.228000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10476.938, "dur": 32.83400000000074, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10481.589, "dur": 1.8320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10485.229, "dur": 4.873999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10487.336, "dur": 1.5230000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10493.361, "dur": 10.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10499.076, "dur": 1.202000000001135, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10559.103, "dur": 10.493000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10563.799, "dur": 2.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10580.088, "dur": 35.81500000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10584.111, "dur": 5.286999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10586.821, "dur": 1.4580000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10590.924, "dur": 22.18499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10593.138, "dur": 18.50199999999859, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10596.556, "dur": 2.1520000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10602.043, "dur": 2.2399999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10606.463, "dur": 1.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10609.171, "dur": 1.0249999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10635.306, "dur": 13.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10638.072, "dur": 2.308999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10642.116, "dur": 5.155000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10643.738, "dur": 2.525000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10657.745, "dur": 169.0059999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10660.012, "dur": 1.7780000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10697.699, "dur": 2.146999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10738.864, "dur": 13.768000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10742.581, "dur": 5.682999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10744.758, "dur": 2.3060000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10756.811, "dur": 32.96800000000076, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10761.544, "dur": 1.9860000000007858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10765.286, "dur": 4.720999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10767.389, "dur": 1.4020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10773.23, "dur": 10.220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10778.969, "dur": 1.1550000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10838.763, "dur": 10.423999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10843.598, "dur": 1.8240000000005239, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10859.496, "dur": 35.9330000000009, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10863.509, "dur": 5.540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10866.507, "dur": 1.4400000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10870.592, "dur": 22.013999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10872.836, "dur": 18.243000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10876.183, "dur": 2.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10881.578, "dur": 2.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10885.929, "dur": 1.0969999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 10888.646, "dur": 1.0049999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10914.741, "dur": 12.889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10917.329, "dur": 2.180000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10921.226, "dur": 5.206000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 10922.823, "dur": 2.5749999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10936.999, "dur": 168.95800000000054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10939.119, "dur": 1.7969999999986612, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10977.248, "dur": 2.188000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11018.591, "dur": 13.815999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11022.516, "dur": 5.636000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11024.584, "dur": 2.3369999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11036.551, "dur": 32.36200000000099, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11041.161, "dur": 1.886000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11044.806, "dur": 4.649999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11046.887, "dur": 1.3619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11052.626, "dur": 10.03900000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11058.282, "dur": 1.0750000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11117.617, "dur": 10.55199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11122.382, "dur": 1.8770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11138.449, "dur": 35.5630000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11142.325, "dur": 5.411999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11145.192, "dur": 1.4290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11149.272, "dur": 21.929999999998472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11151.542, "dur": 18.12300000000141, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11154.865, "dur": 2.1740000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11160.322, "dur": 2.0450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11164.472, "dur": 1.0470000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11167.226, "dur": 0.9929999999985739, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11193.149, "dur": 12.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11195.69, "dur": 2.2369999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11199.606, "dur": 5.255000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 11201.222, "dur": 2.6190000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11215.264, "dur": 167.69400000000132, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11217.398, "dur": 1.7210000000013679, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11254.498, "dur": 2.1740000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11295.052, "dur": 14.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11298.959, "dur": 5.75, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11301.067, "dur": 2.4030000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11313.382, "dur": 32.64000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11318.106, "dur": 1.9359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11321.777, "dur": 4.690000000000509, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11323.852, "dur": 1.3979999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11329.622, "dur": 10.14100000000144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11335.343, "dur": 1.1439999999984138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11395.081, "dur": 10.420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11399.832, "dur": 1.8770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11415.592, "dur": 35.78600000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11419.489, "dur": 5.540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11422.452, "dur": 1.4639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11426.551, "dur": 21.985000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11428.783, "dur": 18.26300000000083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11432.156, "dur": 2.161999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11437.639, "dur": 2.1570000000010623, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11441.919, "dur": 1.0850000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11444.619, "dur": 1.0190000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11471.028, "dur": 12.840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11473.465, "dur": 2.256999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11477.428, "dur": 5.242000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 11479.04, "dur": 2.5419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11493.068, "dur": 167.52400000000125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11495.284, "dur": 1.863999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11532.273, "dur": 2.177000000001499, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11573.227, "dur": 14.171999999998661, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11577.204, "dur": 5.843000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11579.382, "dur": 2.42699999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11591.689, "dur": 32.57599999999911, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11596.367, "dur": 1.9380000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11600.08, "dur": 4.610000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11602.132, "dur": 1.2920000000012806, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11607.927, "dur": 10.18499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11613.727, "dur": 1.1299999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11672.137, "dur": 10.572000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11676.886, "dur": 2.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11692.71, "dur": 35.65100000000166, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11696.629, "dur": 5.455999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11699.522, "dur": 1.4219999999986612, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11703.599, "dur": 21.962999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11705.809, "dur": 18.25300000000061, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11709.246, "dur": 2.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11714.662, "dur": 2.144000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11718.939, "dur": 1.0730000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11721.63, "dur": 0.9990000000016153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11747.224, "dur": 12.894000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11749.684, "dur": 2.265000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11753.681, "dur": 5.2479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 11755.278, "dur": 2.6010000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11769.052, "dur": 175.3720000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11771.201, "dur": 4.529000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11811.799, "dur": 2.4129999999986467, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11852.262, "dur": 15.037999999998647, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11856.212, "dur": 6.280000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11858.553, "dur": 2.605999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11871.785, "dur": 35.784999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11876.672, "dur": 1.9509999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11880.65, "dur": 5.029000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11882.804, "dur": 1.4590000000007421, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11888.96, "dur": 10.033000000001266, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 11894.564, "dur": 1.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11956.579, "dur": 11.358000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11961.66, "dur": 2.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11978.302, "dur": 39.5630000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11982.389, "dur": 5.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11985.33, "dur": 1.4690000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11989.587, "dur": 25.485000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11992.004, "dur": 21.385999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11995.639, "dur": 2.2010000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12001.245, "dur": 2.3249999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12005.873, "dur": 3.1490000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12010.792, "dur": 1.0730000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12037.224, "dur": 13.194999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12039.932, "dur": 2.4179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12044.037, "dur": 5.119999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 12045.665, "dur": 2.414999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12059.782, "dur": 170.94500000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12061.947, "dur": 1.7749999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12099.137, "dur": 2.149999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12139.182, "dur": 16.484999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12145.085, "dur": 5.997000000001208, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12147.382, "dur": 2.3870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12160.27, "dur": 33.594999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12165.239, "dur": 1.9799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12169.046, "dur": 4.834999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12171.192, "dur": 1.3950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12177.247, "dur": 10.345000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12182.89, "dur": 1.114000000001397, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12242.745, "dur": 12.982999999998356, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12249.744, "dur": 1.9599999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12266.545, "dur": 39.13500000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12270.525, "dur": 5.635000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12273.451, "dur": 1.537000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12277.805, "dur": 23.134000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12280.192, "dur": 19.153000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12283.648, "dur": 2.210000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12289.232, "dur": 2.334999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12293.9, "dur": 1.1380000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12296.758, "dur": 1.0820000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12324.932, "dur": 13.527000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12327.522, "dur": 2.385999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12331.764, "dur": 5.416000000001077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 12333.528, "dur": 2.55199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12347.537, "dur": 172.90300000000025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12349.731, "dur": 1.7510000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12387.342, "dur": 2.1999999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12428.085, "dur": 16.424000000000888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12432.068, "dur": 6.031000000000859, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12434.345, "dur": 2.438000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12448.982, "dur": 34.201999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12454.059, "dur": 2.1710000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12458.012, "dur": 4.915999999999258, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12460.209, "dur": 1.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12466.488, "dur": 10.134000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12472.113, "dur": 1.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12532.729, "dur": 10.927999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12537.593, "dur": 1.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12556.272, "dur": 37.10499999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12560.367, "dur": 5.685999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12563.292, "dur": 1.5050000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12567.713, "dur": 22.847999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12570.027, "dur": 19.016999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12573.453, "dur": 2.2659999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12579.047, "dur": 2.3029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12583.544, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12586.517, "dur": 1.055000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12612.722, "dur": 15.167999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12615.309, "dur": 4.164000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12621.292, "dur": 5.352000000000771, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 12622.981, "dur": 2.5720000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12637.392, "dur": 172.48799999999937, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12639.486, "dur": 1.7639999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12676.93, "dur": 2.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12718.04, "dur": 14.532999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12721.931, "dur": 5.9319999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12724.099, "dur": 2.407999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12736.943, "dur": 35.68000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12741.868, "dur": 2.0100000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12747.598, "dur": 4.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12749.732, "dur": 1.4069999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12755.807, "dur": 10.203999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12761.52, "dur": 1.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12822.158, "dur": 10.726000000000568, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12827.022, "dur": 1.8689999999987776, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12843.302, "dur": 357.41100000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12847.687, "dur": 5.6120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12850.643, "dur": 1.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12854.885, "dur": 23.162000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12857.163, "dur": 19.34900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12860.68, "dur": 2.2299999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12866.425, "dur": 2.3170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12870.957, "dur": 1.172999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 12873.833, "dur": 1.168999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13226.107, "dur": 18.572000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13229.171, "dur": 3.3799999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13234.286, "dur": 5.846999999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 13236.245, "dur": 2.833999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13256.348, "dur": 188.47299999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13258.703, "dur": 2.2770000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13300.759, "dur": 2.2600000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13345.467, "dur": 15.515999999999622, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13349.872, "dur": 6.313000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13352.262, "dur": 2.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13365.743, "dur": 38.844999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13370.712, "dur": 2.100000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13374.657, "dur": 5.003000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13376.819, "dur": 1.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13387.019, "dur": 10.813000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13393.272, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13457.153, "dur": 10.891999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13461.964, "dur": 2.0059999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13479.583, "dur": 40.88699999999881, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13483.614, "dur": 5.3289999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13486.321, "dur": 1.5239999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13490.465, "dur": 27.097999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13492.813, "dur": 23.195999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13496.326, "dur": 2.2270000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13506.026, "dur": 2.485000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13510.77, "dur": 1.1189999999987776, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13513.601, "dur": 0.9849999999987631, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13541.271, "dur": 13.073999999998705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13543.746, "dur": 2.4400000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13547.921, "dur": 5.225000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 13549.61, "dur": 2.5309999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13563.806, "dur": 185.3159999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13566.169, "dur": 1.9240000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13604.83, "dur": 5.65099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13651.347, "dur": 14.703999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13655.363, "dur": 6.337000000001353, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13657.954, "dur": 2.5490000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13670.434, "dur": 39.7390000000014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13675.363, "dur": 2.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13679.227, "dur": 4.860999999998967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13681.458, "dur": 1.4069999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13687.433, "dur": 10.292999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13693.218, "dur": 1.201999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13761.508, "dur": 10.622999999999593, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13766.285, "dur": 1.9220000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13783.111, "dur": 40.80199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13787.325, "dur": 5.3619999999991705, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13790.127, "dur": 1.4249999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13794.223, "dur": 26.806000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13796.498, "dur": 22.941000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13800.148, "dur": 2.3170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13806.012, "dur": 2.377999999998792, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13810.547, "dur": 1.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13816.939, "dur": 1.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13844.699, "dur": 13.260999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13847.159, "dur": 2.7000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13851.561, "dur": 5.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 13853.165, "dur": 2.566999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13867.463, "dur": 176.26200000000063, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13869.732, "dur": 1.8559999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13908.331, "dur": 2.149999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13949.823, "dur": 17.979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13953.853, "dur": 9.590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13956.05, "dur": 6.164000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13972.463, "dur": 33.288000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13977.23, "dur": 2.1130000000011933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13981.174, "dur": 4.6709999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13983.288, "dur": 1.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13989.294, "dur": 10.05999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 13994.931, "dur": 1.1000000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14055.909, "dur": 14.498999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14060.769, "dur": 5.612999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14081.666, "dur": 40.45400000000154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14085.834, "dur": 5.627999999998792, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14088.858, "dur": 1.4899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14092.99, "dur": 23.042999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14095.463, "dur": 18.9950000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14098.99, "dur": 2.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14104.68, "dur": 2.132999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14109.18, "dur": 1.0609999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14111.893, "dur": 1.0249999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 14142.281, "dur": 13.451999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14144.73, "dur": 2.5120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 14149.01, "dur": 5.531999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 14150.708, "dur": 2.779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 14165.305, "dur": 176.03899999999885, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14167.482, "dur": 1.8580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 14205.852, "dur": 2.208999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 14247.014, "dur": 14.165000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 14250.846, "dur": 6.006999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14253.086, "dur": 2.5670000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 14269.272, "dur": 33.49199999999837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14274.033, "dur": 2.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 14278.111, "dur": 4.680999999998676, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14280.168, "dur": 1.4130000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 14286.246, "dur": 10.303000000001703, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14292.001, "dur": 1.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14353.828, "dur": 10.895000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14358.894, "dur": 1.9499999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14375.441, "dur": 41.23999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14383.524, "dur": 5.644000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14386.444, "dur": 1.6190000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14390.681, "dur": 23.170000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14393.053, "dur": 19.20100000000093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14396.634, "dur": 2.4089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14402.524, "dur": 2.225000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14406.961, "dur": 1.0850000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14409.769, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 14437.161, "dur": 16.30500000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14439.771, "dur": 2.2600000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 14443.743, "dur": 8.528000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 14448.58, "dur": 2.6810000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 14463.754, "dur": 176.1319999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14466.158, "dur": 2.0310000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 14504.965, "dur": 2.1630000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 14546.329, "dur": 14.154000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 14550.441, "dur": 5.769999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14552.583, "dur": 2.430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 14564.881, "dur": 37.06999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14569.42, "dur": 1.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 14573.254, "dur": 8.468999999999141, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14579.151, "dur": 1.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 14585.126, "dur": 10.260000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14590.881, "dur": 1.1500000000014552, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14652.147, "dur": 10.46099999999933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14657.039, "dur": 1.889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14673.115, "dur": 40.498999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14677.231, "dur": 5.3400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14680.071, "dur": 1.4159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14688.094, "dur": 22.632000000001426, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14690.454, "dur": 18.69499999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14693.924, "dur": 2.2699999999986176, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14699.619, "dur": 2.0819999999985157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14703.904, "dur": 1.0419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14706.654, "dur": 0.9979999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 14733.987, "dur": 13.04200000000128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14736.46, "dur": 2.3260000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 14740.506, "dur": 5.302999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 14742.131, "dur": 2.67200000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 14756.694, "dur": 184.5540000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14762.324, "dur": 2.100000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 14801.16, "dur": 2.103000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 14841.828, "dur": 14.284999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 14845.632, "dur": 6.208000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14848.092, "dur": 2.5339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 14860.705, "dur": 37.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14865.512, "dur": 1.9419999999990978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 14869.304, "dur": 4.789000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14871.501, "dur": 1.381999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 14877.448, "dur": 14.229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 14883.188, "dur": 5.0049999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 14953.706, "dur": 10.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14958.624, "dur": 1.9500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 14975.17, "dur": 42.08899999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 14979.429, "dur": 5.402000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 14982.284, "dur": 1.4580000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 14986.299, "dur": 28.011999999998807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 14988.701, "dur": 24.045000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 14992.469, "dur": 2.2220000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 14998.054, "dur": 7.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15007.491, "dur": 1.102999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15010.244, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15037.831, "dur": 13.192999999999302, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15040.314, "dur": 2.4899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15044.581, "dur": 5.173999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15046.189, "dur": 2.5319999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15060.866, "dur": 181.14799999999923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15063.084, "dur": 1.9259999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15101.403, "dur": 2.138999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 15142.407, "dur": 23.527000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 15155.424, "dur": 6.1599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15157.844, "dur": 2.4909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 15170.554, "dur": 33.40699999999924, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15175.309, "dur": 2.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 15179.187, "dur": 4.734000000000378, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15181.312, "dur": 1.3870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 15187.281, "dur": 10.307999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15193.146, "dur": 1.117999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 15260.584, "dur": 10.903999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15265.564, "dur": 2.0419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 15282.141, "dur": 40.1869999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 15286.326, "dur": 5.355000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15289.092, "dur": 1.4369999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 15293.151, "dur": 26.247999999999593, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 15295.504, "dur": 22.34899999999834, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15298.909, "dur": 2.2919999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 15304.603, "dur": 2.2810000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15309.028, "dur": 1.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15311.986, "dur": 1.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15342.402, "dur": 13.13800000000083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15344.95, "dur": 2.4309999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15349.127, "dur": 5.2259999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15350.76, "dur": 2.5650000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15365.229, "dur": 175.5580000000009, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15367.526, "dur": 2.1890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15405.89, "dur": 2.154000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 15446.875, "dur": 17.72700000000077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 15450.67, "dur": 9.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15453.026, "dur": 2.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 15469.121, "dur": 33.68600000000151, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15473.887, "dur": 2.1999999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 15477.955, "dur": 4.789000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15480.099, "dur": 1.4159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 15486.147, "dur": 10.203999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15491.961, "dur": 1.0600000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 15553.255, "dur": 14.300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15558.163, "dur": 1.9030000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 15578.542, "dur": 36.707000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 15582.69, "dur": 5.537000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15585.646, "dur": 1.4759999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 15589.649, "dur": 22.76000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 15592.079, "dur": 18.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15595.726, "dur": 2.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 15601.294, "dur": 2.2049999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15605.607, "dur": 1.1020000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15608.334, "dur": 1.006999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15634.802, "dur": 16.623999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15640.641, "dur": 2.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15644.992, "dur": 5.246999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15646.624, "dur": 2.585000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15661.663, "dur": 175.39899999999943, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15663.851, "dur": 1.7899999999990541, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15702.049, "dur": 2.1569999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 15743.033, "dur": 14.256000000001222, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 15746.888, "dur": 6.019999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15749.092, "dur": 2.563000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 15761.685, "dur": 37.11499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15770.205, "dur": 2.0640000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 15774.144, "dur": 4.806000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15776.233, "dur": 1.5270000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 15782.347, "dur": 10.19300000000112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15788.128, "dur": 1.1019999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 15849.314, "dur": 10.895000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15854.241, "dur": 1.9860000000007858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 15870.992, "dur": 40.57999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 15875.094, "dur": 9.321000000001732, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 15881.802, "dur": 1.522000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 15885.873, "dur": 22.77599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 15888.273, "dur": 18.822000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15891.742, "dur": 2.3400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 15897.505, "dur": 2.2670000000016444, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15901.852, "dur": 1.0939999999991414, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 15904.634, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 15932.022, "dur": 16.242999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15934.586, "dur": 2.378000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 15938.674, "dur": 8.3849999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 15940.335, "dur": 2.5970000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 15958.405, "dur": 173.22999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 15960.635, "dur": 1.7860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 15998.606, "dur": 2.219999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16039.324, "dur": 14.08299999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16043.224, "dur": 5.907999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16045.464, "dur": 2.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16057.589, "dur": 36.90600000000086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16062.262, "dur": 1.9489999999987049, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16066.03, "dur": 8.253999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16068.104, "dur": 1.2970000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16077.782, "dur": 10.259000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16083.63, "dur": 1.092000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 16143.52, "dur": 10.591999999998734, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16148.323, "dur": 1.9650000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 16164.755, "dur": 40.39000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 16168.816, "dur": 5.547999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16171.792, "dur": 1.423000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 16175.8, "dur": 26.502000000000407, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 16178.09, "dur": 22.664999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16185.269, "dur": 2.3510000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 16191.142, "dur": 2.264999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16195.536, "dur": 1.0889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16198.325, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 16225.2, "dur": 13.152000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16227.747, "dur": 2.3770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 16231.909, "dur": 5.164000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 16233.504, "dur": 2.52599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 16247.7, "dur": 176.12099999999919, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16249.952, "dur": 4.863000000001193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 16290.575, "dur": 2.209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16331.095, "dur": 14.038000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16335.0, "dur": 5.829999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16337.167, "dur": 2.4170000000012806, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16349.315, "dur": 37.027000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16354.067, "dur": 1.9970000000012078, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16357.925, "dur": 4.621000000001004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16359.973, "dur": 1.3369999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16365.82, "dur": 10.253000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16371.604, "dur": 1.1159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 16435.707, "dur": 10.819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16440.679, "dur": 1.955999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 16457.385, "dur": 39.806000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 16461.45, "dur": 5.576000000000931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16464.482, "dur": 1.4199999999982538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 16468.49, "dur": 25.920999999998457, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 16470.809, "dur": 22.054000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16474.15, "dur": 2.1089999999967404, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 16479.607, "dur": 2.2119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16483.88, "dur": 4.789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16490.362, "dur": 1.0030000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 16517.323, "dur": 13.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16519.805, "dur": 2.4399999999986903, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 16523.99, "dur": 5.172999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 16525.623, "dur": 2.493000000002212, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 16539.903, "dur": 180.65000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16542.048, "dur": 1.639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 16579.925, "dur": 2.121999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16620.532, "dur": 18.988000000001193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16628.53, "dur": 6.170000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16630.867, "dur": 2.588999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16644.075, "dur": 33.008999999998196, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16648.822, "dur": 2.110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16652.788, "dur": 4.641999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16654.884, "dur": 1.3290000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16660.7, "dur": 10.029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16666.296, "dur": 1.1480000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 16733.045, "dur": 14.679000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16741.808, "dur": 1.944999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 16758.829, "dur": 42.29599999999846, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 16762.868, "dur": 5.684000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16765.885, "dur": 1.548000000002503, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 16770.035, "dur": 22.677999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 16772.369, "dur": 18.811000000001513, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16775.713, "dur": 2.367000000002008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 16781.554, "dur": 2.2730000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16785.945, "dur": 1.0790000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16788.713, "dur": 1.0200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 16821.68, "dur": 13.672999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16824.48, "dur": 2.541000000001077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 16828.772, "dur": 5.3729999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 16830.46, "dur": 2.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 16844.704, "dur": 213.11599999999817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16846.905, "dur": 1.669000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 16885.002, "dur": 2.2000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 16925.813, "dur": 18.294000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 16929.69, "dur": 6.176000000003114, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16932.026, "dur": 2.6039999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 16948.855, "dur": 32.97699999999895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 16953.635, "dur": 2.040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 16957.533, "dur": 4.797000000002299, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 16959.64, "dur": 1.4150000000008731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 16965.655, "dur": 10.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 16971.447, "dur": 1.0449999999982538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17071.484, "dur": 11.731999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17076.883, "dur": 2.1019999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17099.284, "dur": 37.96399999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17103.602, "dur": 5.80199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17106.642, "dur": 1.651000000001659, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17110.92, "dur": 23.455000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17113.284, "dur": 19.559000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17117.044, "dur": 2.355999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 17122.992, "dur": 2.433000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17127.602, "dur": 1.1020000000025902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17130.42, "dur": 1.0050000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 17158.452, "dur": 17.083999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17161.17, "dur": 5.930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 17168.832, "dur": 5.433000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 17170.562, "dur": 2.665999999997439, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 17185.325, "dur": 177.40299999999843, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17187.608, "dur": 1.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 17226.627, "dur": 2.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 17268.162, "dur": 14.532999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 17272.166, "dur": 6.049999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17274.574, "dur": 2.3800000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 17287.07, "dur": 37.29100000000108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17291.793, "dur": 1.9769999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 17299.385, "dur": 4.725000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17301.533, "dur": 1.3689999999987776, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 17307.455, "dur": 10.432999999997264, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17313.442, "dur": 1.1310000000012224, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17375.142, "dur": 10.902999999998428, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17380.121, "dur": 2.0460000000020955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17396.923, "dur": 40.61200000000099, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17401.015, "dur": 9.319999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17403.962, "dur": 1.4830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17411.825, "dur": 22.8279999999977, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17414.151, "dur": 18.965000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17417.693, "dur": 2.297000000002299, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 17423.447, "dur": 2.315999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17427.923, "dur": 1.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17430.671, "dur": 1.011000000002241, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 17457.768, "dur": 16.09899999999834, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17460.333, "dur": 2.4799999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 17464.525, "dur": 5.25, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 17466.213, "dur": 2.5200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 17483.876, "dur": 174.81299999999828, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17486.15, "dur": 1.8959999999970023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 17524.053, "dur": 2.2069999999985157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 17565.39, "dur": 14.098000000001775, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 17569.416, "dur": 5.798999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17571.696, "dur": 2.3040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 17583.768, "dur": 36.56499999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17588.503, "dur": 1.9019999999982247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 17592.323, "dur": 4.6120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17594.387, "dur": 1.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 17600.023, "dur": 14.011999999998807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17609.548, "dur": 1.139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17671.214, "dur": 10.954000000001543, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17676.081, "dur": 2.106999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17692.574, "dur": 40.248999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17696.643, "dur": 5.5459999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17699.628, "dur": 1.4749999999985448, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17703.656, "dur": 26.330000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17705.933, "dur": 22.469999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17709.353, "dur": 2.2160000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 17718.836, "dur": 2.235000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17723.203, "dur": 1.087999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17725.945, "dur": 1.0030000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 17753.173, "dur": 13.189000000002125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17755.721, "dur": 2.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 17759.85, "dur": 5.283999999999651, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 17761.525, "dur": 2.5639999999984866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 17775.974, "dur": 175.81900000000314, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17778.171, "dur": 1.8620000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 17815.673, "dur": 5.417000000001281, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 17860.006, "dur": 14.179000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 17863.845, "dur": 5.82300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17866.088, "dur": 2.3430000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 17878.335, "dur": 36.251000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 17883.096, "dur": 1.9589999999989232, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 17886.865, "dur": 4.617999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17888.914, "dur": 1.3289999999979045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 17894.723, "dur": 10.104999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 17900.495, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 17964.042, "dur": 10.684999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17968.88, "dur": 1.893000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 17985.387, "dur": 39.64300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 17989.288, "dur": 5.379000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 17992.17, "dur": 1.4170000000012806, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 17996.091, "dur": 26.12199999999939, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 17998.396, "dur": 22.279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18001.908, "dur": 2.1569999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18007.38, "dur": 2.264999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18011.733, "dur": 1.0619999999980791, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18014.447, "dur": 4.724999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18045.532, "dur": 13.013999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18048.01, "dur": 2.4020000000018626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18052.151, "dur": 5.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18053.708, "dur": 2.6150000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18068.192, "dur": 174.53900000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18070.469, "dur": 1.787000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18108.224, "dur": 2.1490000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 18149.511, "dur": 18.423000000002503, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 18153.334, "dur": 10.095000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18155.614, "dur": 6.555000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 18172.573, "dur": 33.16100000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18177.453, "dur": 2.1229999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 18181.389, "dur": 4.755000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18183.571, "dur": 1.3800000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 18189.549, "dur": 10.156999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18195.316, "dur": 1.1680000000014843, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 18254.926, "dur": 13.970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18259.696, "dur": 5.398000000001048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 18279.888, "dur": 39.36000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 18283.936, "dur": 5.5459999999984575, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18286.93, "dur": 1.4310000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 18290.911, "dur": 22.3650000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 18293.361, "dur": 18.36999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18296.896, "dur": 2.238999999997759, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18302.474, "dur": 2.128000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18306.685, "dur": 1.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18309.313, "dur": 0.9900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18339.505, "dur": 13.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18341.945, "dur": 2.3810000000012224, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18346.062, "dur": 5.245999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18347.793, "dur": 2.4949999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18361.875, "dur": 174.92599999999948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18364.148, "dur": 1.805000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18401.216, "dur": 2.2000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 18442.068, "dur": 14.329000000001543, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 18446.042, "dur": 6.004999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18448.375, "dur": 2.440999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 18460.663, "dur": 38.909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18471.221, "dur": 2.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 18475.301, "dur": 4.722000000001572, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18477.436, "dur": 1.3559999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 18483.294, "dur": 10.173999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18489.221, "dur": 1.0629999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 18548.894, "dur": 10.778999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18553.852, "dur": 1.9609999999993306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 18570.331, "dur": 39.77000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 18578.073, "dur": 5.595000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18581.076, "dur": 1.495999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 18585.084, "dur": 22.241000000001804, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 18587.372, "dur": 18.491000000001804, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18590.737, "dur": 2.3040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18596.436, "dur": 2.2409999999981665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18600.751, "dur": 1.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18603.434, "dur": 0.9989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18630.574, "dur": 15.91700000000128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18632.953, "dur": 2.2079999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18636.869, "dur": 8.440000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18641.681, "dur": 2.602999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18656.524, "dur": 174.0659999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18658.794, "dur": 1.9269999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18697.028, "dur": 2.2080000000023574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 18738.303, "dur": 14.159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 18742.285, "dur": 5.819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18744.508, "dur": 2.3649999999979627, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 18756.765, "dur": 36.925999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18761.528, "dur": 2.0380000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 18765.376, "dur": 8.365999999998166, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18771.094, "dur": 1.4419999999990978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 18777.15, "dur": 10.354999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18783.106, "dur": 1.1589999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 18842.796, "dur": 10.572000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18847.603, "dur": 1.9789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 18863.994, "dur": 39.57300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 18867.954, "dur": 5.359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 18870.842, "dur": 1.3620000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 18874.729, "dur": 26.01299999999901, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 18880.654, "dur": 18.582000000002154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18884.066, "dur": 2.1959999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 18889.664, "dur": 2.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18893.956, "dur": 1.1010000000023865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 18896.754, "dur": 1.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 18923.467, "dur": 12.675999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18925.901, "dur": 2.2109999999993306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 18929.797, "dur": 5.174000000002707, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 18931.428, "dur": 2.486000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 18945.711, "dur": 176.48300000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 18951.014, "dur": 1.8400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 18988.924, "dur": 2.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19029.812, "dur": 14.28099999999904, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19033.713, "dur": 6.043000000001484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19035.984, "dur": 2.5169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19048.369, "dur": 36.379000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19053.012, "dur": 1.8340000000025611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19056.653, "dur": 4.591000000000349, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19058.749, "dur": 1.2799999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19064.446, "dur": 14.099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19070.324, "dur": 4.919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 19134.425, "dur": 10.495999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19139.191, "dur": 1.9250000000029104, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 19155.357, "dur": 40.004000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 19159.288, "dur": 5.468000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19162.285, "dur": 1.3519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 19166.209, "dur": 26.382000000001426, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 19168.554, "dur": 22.493999999998778, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19172.108, "dur": 2.1850000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 19177.656, "dur": 5.968000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19185.837, "dur": 1.087999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19188.57, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 19215.486, "dur": 13.130000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19217.945, "dur": 2.440999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 19222.097, "dur": 5.3509999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 19223.803, "dur": 2.599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 19237.894, "dur": 172.15199999999822, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19240.091, "dur": 1.8119999999980791, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 19277.546, "dur": 2.1380000000026484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19318.572, "dur": 17.424999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19325.986, "dur": 5.861000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19328.276, "dur": 2.3469999999979336, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19340.502, "dur": 32.72999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19345.149, "dur": 1.9539999999979045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19348.863, "dur": 4.700999999997293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19350.951, "dur": 1.3999999999978172, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19356.962, "dur": 10.066999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19362.663, "dur": 1.120999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 19425.851, "dur": 10.73700000000099, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19430.734, "dur": 1.9700000000011642, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 19447.031, "dur": 39.460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 19450.961, "dur": 5.528000000002066, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19453.956, "dur": 1.441000000002532, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 19457.951, "dur": 25.718000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 19460.341, "dur": 21.790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19463.809, "dur": 2.274999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 19469.424, "dur": 2.069999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19473.617, "dur": 1.055000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19476.303, "dur": 0.9979999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 19506.884, "dur": 13.27900000000227, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19509.341, "dur": 2.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 19513.673, "dur": 5.291000000001077, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 19515.412, "dur": 2.528999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 19529.821, "dur": 171.72599999999875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19531.974, "dur": 1.77900000000227, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 19569.144, "dur": 2.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19609.637, "dur": 17.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19613.552, "dur": 9.671000000002095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19615.854, "dur": 2.5900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19631.988, "dur": 32.623999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19636.688, "dur": 2.0930000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19640.605, "dur": 4.778999999998632, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19642.709, "dur": 1.444999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19648.573, "dur": 10.02100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19654.337, "dur": 1.1120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 19713.704, "dur": 14.825999999997293, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19718.486, "dur": 1.9179999999978463, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 19739.454, "dur": 36.590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 19743.587, "dur": 5.56000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19746.577, "dur": 1.433999999997468, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 19750.597, "dur": 22.63799999999901, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 19752.975, "dur": 18.71100000000297, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19756.367, "dur": 2.3400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 19762.206, "dur": 2.25800000000163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19766.611, "dur": 1.0400000000008731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19769.277, "dur": 0.9980000000032305, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 19795.727, "dur": 16.699000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19801.687, "dur": 2.5899999999965075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 19806.015, "dur": 5.208000000002357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 19807.694, "dur": 2.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 19822.576, "dur": 172.39199999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19824.769, "dur": 1.805000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 19862.344, "dur": 2.1450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 19903.292, "dur": 14.183999999997468, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 19907.255, "dur": 6.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19909.552, "dur": 2.4569999999985157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 19921.527, "dur": 36.41900000000169, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 19930.031, "dur": 2.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 19933.968, "dur": 4.755000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 19936.111, "dur": 1.393000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 19941.992, "dur": 10.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 19947.696, "dur": 1.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20007.097, "dur": 10.650999999998021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20011.883, "dur": 1.992999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20028.274, "dur": 43.1359999999986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20032.226, "dur": 12.218000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20035.074, "dur": 8.222999999998137, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20045.937, "dur": 22.64799999999741, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20048.337, "dur": 18.707000000002154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20051.897, "dur": 2.2779999999984284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20057.575, "dur": 2.2119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20061.907, "dur": 1.0450000000018917, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20064.578, "dur": 1.0339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20091.677, "dur": 16.32800000000134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20094.25, "dur": 2.4759999999987485, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20098.398, "dur": 8.41400000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20100.067, "dur": 2.475000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 20118.269, "dur": 173.51699999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20120.612, "dur": 1.8430000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 20158.862, "dur": 2.144000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 20200.351, "dur": 14.135000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 20204.291, "dur": 5.878000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20206.477, "dur": 2.441000000002532, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 20218.635, "dur": 36.35900000000038, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20223.215, "dur": 1.9540000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 20227.006, "dur": 8.315999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20229.022, "dur": 1.3619999999973516, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 20238.686, "dur": 10.247999999999593, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20244.522, "dur": 1.1299999999973807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20304.192, "dur": 10.47899999999936, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20308.889, "dur": 1.9599999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20325.466, "dur": 40.016999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20329.431, "dur": 5.417999999997846, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20332.306, "dur": 1.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20336.322, "dur": 26.31499999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20338.644, "dur": 22.437999999998283, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20345.877, "dur": 2.264999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20351.563, "dur": 2.231000000003405, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20355.969, "dur": 1.0599999999976717, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20358.646, "dur": 1.0099999999983993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20385.469, "dur": 13.185999999997875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20388.134, "dur": 2.3880000000026484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20392.223, "dur": 5.238999999997759, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20393.836, "dur": 2.5560000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 20408.264, "dur": 176.4429999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20410.486, "dur": 1.7399999999979627, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 20451.946, "dur": 2.1379999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 20492.818, "dur": 13.915000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 20496.627, "dur": 5.788000000000466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20498.825, "dur": 2.3519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 20510.753, "dur": 37.07600000000093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20515.377, "dur": 2.024999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 20519.198, "dur": 4.654999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20521.325, "dur": 1.3129999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 20527.412, "dur": 10.272000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20533.247, "dur": 1.1660000000010768, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20596.826, "dur": 10.40899999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20601.542, "dur": 1.9359999999978754, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20617.735, "dur": 39.947000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20621.757, "dur": 5.3179999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20624.484, "dur": 1.489000000001397, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20628.542, "dur": 26.326999999997497, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20630.887, "dur": 22.4220000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20634.532, "dur": 2.2600000000020373, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20640.097, "dur": 2.274999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20644.484, "dur": 4.797999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20650.907, "dur": 0.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20677.902, "dur": 13.485000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20680.298, "dur": 2.7489999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20684.858, "dur": 5.355999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20686.562, "dur": 2.609999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 20700.429, "dur": 173.06299999999828, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20702.63, "dur": 1.9369999999980791, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 20740.177, "dur": 2.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 20780.877, "dur": 17.93999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 20788.337, "dur": 6.225000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20790.815, "dur": 2.5159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 20803.243, "dur": 33.40600000000268, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20808.034, "dur": 2.0970000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 20811.929, "dur": 5.07300000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20814.337, "dur": 1.3889999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 20820.314, "dur": 10.113000000001193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20826.126, "dur": 1.0580000000009022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 20885.832, "dur": 13.937000000001717, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20894.05, "dur": 1.8780000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 20910.488, "dur": 39.28099999999904, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 20914.576, "dur": 5.308999999997468, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 20917.285, "dur": 1.4789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 20921.344, "dur": 22.453999999997905, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 20923.693, "dur": 18.59400000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20927.058, "dur": 2.2289999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 20932.675, "dur": 2.3029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20937.09, "dur": 1.1059999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 20939.857, "dur": 1.0050000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 20969.513, "dur": 13.33599999999933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 20972.015, "dur": 2.5750000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 20976.309, "dur": 5.3179999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 20978.107, "dur": 2.486000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21019.015, "dur": 183.06200000000172, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21021.653, "dur": 2.3840000000018335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21062.75, "dur": 2.2030000000013388, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 21105.369, "dur": 19.12000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 21109.386, "dur": 6.429000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21111.926, "dur": 2.647000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 21129.198, "dur": 34.03600000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21133.833, "dur": 2.1740000000027067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 21137.815, "dur": 5.097000000001572, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21140.195, "dur": 1.4720000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 21146.217, "dur": 10.506999999997788, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21152.284, "dur": 1.1379999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 21214.31, "dur": 10.473999999998341, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21218.898, "dur": 2.019000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 21239.318, "dur": 36.9320000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 21243.472, "dur": 5.277999999998428, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21246.112, "dur": 1.510999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 21250.208, "dur": 23.264000000002852, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 21252.556, "dur": 19.388999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21256.17, "dur": 2.3550000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 21262.176, "dur": 2.2740000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21266.65, "dur": 1.1419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21269.525, "dur": 1.0199999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 21296.468, "dur": 17.034999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21299.035, "dur": 2.371999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 21306.671, "dur": 5.473000000001775, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 21308.512, "dur": 2.618000000002212, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21323.413, "dur": 173.95999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21325.71, "dur": 1.8330000000023574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21364.077, "dur": 2.2589999999981956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 21404.952, "dur": 14.217999999997119, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 21408.824, "dur": 5.96900000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21411.097, "dur": 2.4509999999972933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 21423.285, "dur": 36.65899999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21427.796, "dur": 1.9370000000017171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 21435.325, "dur": 4.804000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21437.484, "dur": 1.4379999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 21443.47, "dur": 10.237999999997555, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21449.298, "dur": 1.1570000000028813, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 21509.895, "dur": 10.540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21514.678, "dur": 1.955999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 21530.828, "dur": 40.61899999999878, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 21534.83, "dur": 9.343999999997322, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21537.807, "dur": 1.4399999999986903, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 21545.684, "dur": 22.91400000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 21548.013, "dur": 19.074000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21551.507, "dur": 2.282999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 21557.234, "dur": 2.458999999998923, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21561.887, "dur": 1.1080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21564.672, "dur": 0.9970000000030268, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 21592.057, "dur": 18.139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21594.544, "dur": 2.187999999998283, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 21598.435, "dur": 5.298999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 21600.172, "dur": 2.5100000000020373, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21620.524, "dur": 175.17399999999907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21622.739, "dur": 1.8669999999983702, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21661.445, "dur": 2.20600000000195, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 21702.787, "dur": 14.222999999998137, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 21706.688, "dur": 5.978000000002794, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21708.938, "dur": 2.4980000000032305, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 21721.378, "dur": 37.279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21726.108, "dur": 1.977999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 21729.899, "dur": 4.651999999998225, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21731.979, "dur": 1.3660000000018044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 21737.988, "dur": 14.610000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21748.072, "dur": 1.0730000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 21807.616, "dur": 10.695999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21812.387, "dur": 2.0159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 21829.123, "dur": 46.57500000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 21833.127, "dur": 5.443999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 21836.003, "dur": 1.4439999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 21840.03, "dur": 32.78200000000288, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 21842.344, "dur": 28.89300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21845.817, "dur": 2.246999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 21861.567, "dur": 2.3209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21866.087, "dur": 1.102999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 21868.817, "dur": 1.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 21896.347, "dur": 13.356999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21899.012, "dur": 2.360000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 21903.123, "dur": 5.334999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 21904.75, "dur": 2.6820000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 21919.203, "dur": 178.84499999999753, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 21921.305, "dur": 1.9429999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 21959.662, "dur": 5.56499999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 22005.754, "dur": 14.170999999998457, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 22009.51, "dur": 5.966000000000349, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22011.736, "dur": 2.503000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 22024.213, "dur": 36.46299999999974, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22028.863, "dur": 2.024999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 22032.709, "dur": 4.6010000000023865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22034.809, "dur": 1.2769999999982247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 22040.653, "dur": 10.210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22046.563, "dur": 1.1120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 22110.036, "dur": 10.880000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22114.959, "dur": 2.044000000001688, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 22131.643, "dur": 39.9429999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 22135.666, "dur": 5.329999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22138.474, "dur": 1.4130000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 22142.49, "dur": 26.337999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 22144.833, "dur": 22.41400000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22148.311, "dur": 2.275999999998021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 22153.93, "dur": 2.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22158.336, "dur": 1.0900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22161.006, "dur": 4.7369999999973516, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 22191.679, "dur": 13.298999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22194.179, "dur": 2.559000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 22198.505, "dur": 5.27100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 22200.148, "dur": 2.602999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 22214.093, "dur": 178.10399999999936, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22216.31, "dur": 1.6659999999974389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 22253.785, "dur": 2.0469999999986612, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 22294.747, "dur": 17.93800000000192, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 22298.605, "dur": 9.68999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22300.83, "dur": 6.227999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 22317.564, "dur": 33.119000000002416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22322.178, "dur": 2.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 22326.167, "dur": 4.764999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22328.292, "dur": 1.3979999999974098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 22334.311, "dur": 10.086999999999534, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22340.165, "dur": 1.0429999999978463, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 22404.448, "dur": 13.995999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22409.448, "dur": 5.126000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 22429.285, "dur": 36.41100000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 22433.379, "dur": 5.504000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22436.31, "dur": 1.4389999999984866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 22440.294, "dur": 22.65599999999904, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 22442.678, "dur": 18.77600000000166, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22446.068, "dur": 2.2109999999993306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 22451.757, "dur": 2.290999999997439, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22456.178, "dur": 1.1120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22459.005, "dur": 1.0309999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 22489.336, "dur": 13.183000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22491.959, "dur": 2.5339999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 22496.269, "dur": 5.059000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::fill_", "ph": "X", "ts": 22497.89, "dur": 2.4089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 22511.789, "dur": 173.29000000000087, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22513.916, "dur": 1.8799999999973807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 22551.526, "dur": 2.0679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 22592.626, "dur": 14.209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 22596.473, "dur": 6.05199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22598.69, "dur": 2.6130000000011933, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 22611.098, "dur": 36.536999999996624, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 22619.605, "dur": 2.114000000001397, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 22623.578, "dur": 4.7520000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 22625.728, "dur": 1.3580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 22631.556, "dur": 10.023000000001048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stride", "ph": "X", "ts": 22637.374, "dur": 1.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}] \ No newline at end of file From 6f2258f5d07c919cd9b7b040d8cb52e630cd4c62 Mon Sep 17 00:00:00 2001 From: tchaton Date: Fri, 19 Mar 2021 14:58:01 +0000 Subject: [PATCH 026/126] update --- tests/test_profiler.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index a0160be5d43f4..8e4254821a833 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -337,9 +337,12 @@ def test_pytorch_profiler_nested(tmpdir): events_name = {e.name for e in pytorch_profiler.function_events} - expected = { - 'signed char', 'add', 'profiler::_record_function_exit', 'bool', 'char', 'profiler::_record_function_enter' - } + if platform.system() == "Windows": + expected = {'a', 'add', 'b', 'c', 'profiler::_record_function_enter', 'profiler::_record_function_exit'} + else: + expected = { + 'signed char', 'add', 'profiler::_record_function_exit', 'bool', 'char', 'profiler::_record_function_enter' + } if LooseVersion(torch.__version__) >= LooseVersion("1.6.0"): expected = {'add', 'zeros', 'ones', 'zero_', 'b', 'fill_', 'c', 'a', 'empty'} From 883b242bec06ce7817df4561273cb7beccf79920 Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 10:47:43 +0000 Subject: [PATCH 027/126] update --- .gitignore | 1 + pytorch_lightning/profiler/profilers.py | 19 +++++++++++-------- pytorch_lightning/profiler/pytorch.py | 21 +++++++++++++++++---- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index cd0ba22453512..99939ff7fce0c 100644 --- a/.gitignore +++ b/.gitignore @@ -157,3 +157,4 @@ tags data MNIST runs +*trace* diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 828d00da70dc2..01aad6926f584 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -51,8 +51,13 @@ class BaseProfiler(AbstractProfiler, ABC): If you wish to write a custom profiler, you should inherit from this class. """ - def __init__(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: - self.output_fname = getattr(self, "output_fname", None) + def __init__( + self, + output_filename: Optional[str] = None, + local_rank: Optional[int] = None, + log_dir: Optional[str] = None + ) -> None: + self.output_fname = output_filename self.output_file = None # the profiler can be used outside of lightning # that's why we call `on_train_start` manually @@ -110,6 +115,7 @@ def describe(self) -> None: write(self.summary()) if self.output_file: self.output_file.flush() + self.teardown() def stats_to_str(self, stats: dict) -> str: output = ["Profiler Report"] @@ -121,12 +127,10 @@ def stats_to_str(self, stats: dict) -> str: output.append(value) return os.linesep.join(output) - def __del__(self) -> None: + def teardown(self) -> None: """Close profiler's stream.""" - try: + if self.output_file: self.output_file.close() - except AttributeError: - pass class PassThroughProfiler(BaseProfiler): @@ -250,10 +254,9 @@ def __init__(self, output_filename: Optional[str] = None, line_count_restriction ValueError: If you attempt to stop recording an action which was never started. """ - self.output_fname = output_filename + super().__init__(output_filename=output_filename) self.profiled_actions = {} self.line_count_restriction = line_count_restriction - super().__init__() def start(self, action_name: str) -> None: if action_name not in self.profiled_actions: diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 953f04c622c4b..70b30bc505b1f 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -208,7 +208,7 @@ def __init__( self.function_events: Optional[EventList] = None self._profiler_instantiated: bool = False - super().__init__(local_rank=local_rank) + super().__init__(output_filename=output_filename, local_rank=local_rank) def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: if profiled_functions is not None: @@ -245,8 +245,8 @@ def _rank_zero_only_wrap(self) -> None: def start(self, action_name: str) -> None: if not self._profiler_instantiated: - - # close profiler is already opened + + # close profiler if it is already opened try: torch.autograd._disable_profiler() except (AttributeError, RuntimeError): @@ -282,7 +282,8 @@ def summary(self) -> str: return "" local_rank = 0 if self.local_rank is None else self.local_rank - recorded_stats = {} + self.function_events = self.profiler.function_events + self.profiler.__exit__(None, None, None) self.function_events = self.profiler.function_events self.profiler = None @@ -304,6 +305,8 @@ def summary(self) -> str: data = self.function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) + + recorded_stats = {} recorded_stats["records"] = table return self.stats_to_str(recorded_stats) @@ -320,3 +323,13 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) + + def teardown(self): + if self.profiler is not None: + self.profiler.__exit__(None, None, None) + + if self._parent_profiler is not None: + self._parent_profiler.__exit__(None, None, None) + self._parent_profiler = None + + super().teardown() From 9b957bdbda666d90e87a930f142ea3ef8c2a608d Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 11:10:17 +0000 Subject: [PATCH 028/126] update --- pytorch_lightning/profiler/pytorch.py | 6 ++++++ tests/test_profiler.py | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 70b30bc505b1f..d84d70a5d21fc 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -332,4 +332,10 @@ def teardown(self): self._parent_profiler.__exit__(None, None, None) self._parent_profiler = None + if self.register is not None: + self.register.__exit__(None, None, None) + + for record in self.recording_map.values(): + record.__exit__(None, None, None) + super().teardown() diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 8e4254821a833..71f0f8df12d59 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -120,8 +120,7 @@ def test_simple_profiler_value_errors(simple_profiler): @pytest.fixture def advanced_profiler(tmpdir): - profiler = AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) - return profiler + return AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) @pytest.mark.parametrize(["action", "expected"], [ @@ -207,6 +206,7 @@ def test_pytorch_profiler_describe(tmpdir): pytorch_profiler.describe() data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 + pytorch_profiler.teardown() def test_pytorch_profiler_value_errors(tmpdir): @@ -218,6 +218,7 @@ def test_pytorch_profiler_value_errors(tmpdir): with pytest.raises(MisconfigurationException, match="profiled_functions` and `PyTorchProfiler.record"): PyTorchProfiler(profiled_functions=["a"], record_functions=["b"]) + pytorch_profiler.teardown() @RunIf(min_gpus=2, special=True) @@ -239,6 +240,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 + pytorch_profiler.teardown() def test_pytorch_profiler_trainer_fit(tmpdir): @@ -261,6 +263,7 @@ def test_pytorch_profiler_trainer_fit(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 print(tmpdir) + pytorch_profiler.teardown() def test_pytorch_profiler_trainer_test(tmpdir): @@ -279,6 +282,7 @@ def test_pytorch_profiler_trainer_test(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 + pytorch_profiler.teardown() def test_pytorch_profiler_trainer_predict(tmpdir): @@ -298,6 +302,7 @@ def test_pytorch_profiler_trainer_predict(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 + pytorch_profiler.teardown() @RunIf(min_gpus=1, special=True) From 70cc20d7e1438f1a4310e6fbdcac658fc700bc08 Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 11:29:45 +0000 Subject: [PATCH 029/126] test --- pytorch_lightning/profiler/profilers.py | 2 +- tests/test_profiler.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 01aad6926f584..2bfb1759f09be 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -73,7 +73,7 @@ def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str self.prepare_file() def prepare_file(self) -> None: - if self.output_fname: + if self.output_fname and self.output_file is None: fs = get_filesystem(self.output_fname) self.output_file = fs.open(self.output_fname, "w") self.write_streams = [self.output_file.write] if self.output_file else [log.info] diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 71f0f8df12d59..b313e6c5cd020 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -319,6 +319,7 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): gpus=1, ) trainer.fit(model) + pytorch_profiler.teardown() def test_pytorch_profiler_nested(tmpdir): @@ -363,3 +364,4 @@ def test_pytorch_profiler_nested(tmpdir): } assert events_name == expected, (events_name, torch.__version__, platform.system()) + pytorch_profiler.teardown() From 226e0be70eeb287b76531bb9aa66b2e19d0f80ff Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 12:43:06 +0000 Subject: [PATCH 030/126] update# --- pytorch_lightning/profiler/profilers.py | 18 +++++++++++++----- pytorch_lightning/profiler/pytorch.py | 6 ++++-- pytorch_lightning/trainer/predict_loop.py | 2 ++ tests/checkpointing/test_torch_saving.py | 2 ++ tests/test_profiler.py | 13 ++++++++----- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 2bfb1759f09be..b54d228c6fb2f 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -51,6 +51,8 @@ class BaseProfiler(AbstractProfiler, ABC): If you wish to write a custom profiler, you should inherit from this class. """ + _ACTIONS_TO_PREPARE_FILE = ('on_train_start', 'on_validation_step', 'on_test_start', 'on_predict_start') + def __init__( self, output_filename: Optional[str] = None, @@ -59,6 +61,8 @@ def __init__( ) -> None: self.output_fname = output_filename self.output_file = None + self._file_prepared = False + self.write_streams = [] # the profiler can be used outside of lightning # that's why we call `on_train_start` manually self.on_train_start(local_rank=local_rank, log_dir=log_dir) @@ -70,13 +74,14 @@ def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str """ self.local_rank = local_rank self.log_dir = log_dir - self.prepare_file() def prepare_file(self) -> None: - if self.output_fname and self.output_file is None: - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") - self.write_streams = [self.output_file.write] if self.output_file else [log.info] + if not self._file_prepared: + if self.output_fname and self.output_file is None: + fs = get_filesystem(self.output_fname) + self.output_file = fs.open(self.output_fname, "w") + self.write_streams = [self.output_file.write] if self.output_file else [log.info] + self._file_prepared = True @contextmanager def profile(self, action_name: str) -> None: @@ -92,6 +97,9 @@ def profile(self, action_name: str) -> None: stop once you exit the code block. """ try: + # Needs to be created after spawn processes + if action_name in self._ACTIONS_TO_PREPARE_FILE and not self._file_prepared: + self.prepare_file() self.start(action_name) yield action_name finally: diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index d84d70a5d21fc..4e4081fe5fd59 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -244,7 +244,9 @@ def _rank_zero_only_wrap(self) -> None: self.describe = rank_zero_only(self.describe) def start(self, action_name: str) -> None: - if not self._profiler_instantiated: + if not self._profiler_instantiated and action_name in ( + list(self._ACTIONS_TO_PREPARE_FILE) + list(self.record_functions) + ): # close profiler if it is already opened try: @@ -265,7 +267,7 @@ def start(self, action_name: str) -> None: self.register.__enter__() if ( - action_name in self.record_functions and action_name != self.ACTION_NAME_START + self._profiler_instantiated and action_name in self.record_functions and action_name not in self.recording_map ): recording = record_function(action_name) diff --git a/pytorch_lightning/trainer/predict_loop.py b/pytorch_lightning/trainer/predict_loop.py index 8d99a4db38ce8..fe0719aa14da9 100644 --- a/pytorch_lightning/trainer/predict_loop.py +++ b/pytorch_lightning/trainer/predict_loop.py @@ -44,6 +44,8 @@ def on_predict_model_eval(self, *_, **__): model_ref.on_predict_model_eval() def setup(self, model, max_batches, dataloaders): + self.trainer.call_hook("on_predict_start") + # copy properties for forward overrides self.trainer.model_connector.copy_trainer_model_properties(model) diff --git a/tests/checkpointing/test_torch_saving.py b/tests/checkpointing/test_torch_saving.py index c8b1e96aeaf0a..0c703a58d57a4 100644 --- a/tests/checkpointing/test_torch_saving.py +++ b/tests/checkpointing/test_torch_saving.py @@ -47,6 +47,8 @@ def test_model_torch_save_ddp_cpu(tmpdir): max_epochs=num_epochs, accelerator="ddp_cpu", num_processes=2, + profiler=None, + logger=None, ) temp_path = os.path.join(tmpdir, 'temp.pt') trainer.fit(model) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index b313e6c5cd020..d954b349c5d45 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -49,6 +49,7 @@ def _sleep_generator(durations): @pytest.fixture def simple_profiler(): profiler = SimpleProfiler() + profiler.prepare_file() return profiler @@ -120,7 +121,9 @@ def test_simple_profiler_value_errors(simple_profiler): @pytest.fixture def advanced_profiler(tmpdir): - return AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) + profiler = AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) + profiler.prepare_file() + return profiler @pytest.mark.parametrize(["action", "expected"], [ @@ -199,6 +202,7 @@ def test_advanced_profiler_value_errors(advanced_profiler): def test_pytorch_profiler_describe(tmpdir): """Ensure the profiler won't fail when reporting the summary.""" pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) + pytorch_profiler.prepare_file() with pytorch_profiler.profile("test_step"): pass @@ -255,14 +259,12 @@ def test_pytorch_profiler_trainer_fit(tmpdir): profiler=pytorch_profiler, ) trainer.fit(model) - expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') for name in expected: assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0 data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 - print(tmpdir) pytorch_profiler.teardown() @@ -310,12 +312,12 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): """ This test check emit_nvtx is correctly supported """ - profiler = PyTorchProfiler(use_cuda=True, emit_nvtx=True) + pytorch_profiler = PyTorchProfiler(use_cuda=True, emit_nvtx=True) model = BoringModel() trainer = Trainer( fast_dev_run=True, - profiler=profiler, + profiler=pytorch_profiler, gpus=1, ) trainer.fit(model) @@ -331,6 +333,7 @@ def test_pytorch_profiler_nested(tmpdir): use_cuda=torch.cuda.is_available(), output_filename=os.path.join(tmpdir, "profiler.txt") ) + pytorch_profiler.prepare_file() with pytorch_profiler.profile("a"): a = torch.ones(42) From 27348c775c5e844dc66b9dcce803b9042836d154 Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 13:29:17 +0000 Subject: [PATCH 031/126] update --- pytorch_lightning/profiler/profilers.py | 7 ++----- pytorch_lightning/profiler/pytorch.py | 4 ++-- pytorch_lightning/trainer/connectors/profiler_connector.py | 5 ++--- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index b54d228c6fb2f..93d7b3e0f604e 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -51,8 +51,6 @@ class BaseProfiler(AbstractProfiler, ABC): If you wish to write a custom profiler, you should inherit from this class. """ - _ACTIONS_TO_PREPARE_FILE = ('on_train_start', 'on_validation_step', 'on_test_start', 'on_predict_start') - def __init__( self, output_filename: Optional[str] = None, @@ -97,9 +95,6 @@ def profile(self, action_name: str) -> None: stop once you exit the code block. """ try: - # Needs to be created after spawn processes - if action_name in self._ACTIONS_TO_PREPARE_FILE and not self._file_prepared: - self.prepare_file() self.start(action_name) yield action_name finally: @@ -119,6 +114,7 @@ def profile_iterable(self, iterable, action_name: str) -> None: def describe(self) -> None: """Logs a profile report after the conclusion of the training run.""" + self.prepare_file() for write in self.write_streams: write(self.summary()) if self.output_file: @@ -139,6 +135,7 @@ def teardown(self) -> None: """Close profiler's stream.""" if self.output_file: self.output_file.close() + self.write_streams = [] class PassThroughProfiler(BaseProfiler): diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 4e4081fe5fd59..45f2e92c2a504 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -101,7 +101,7 @@ class PyTorchProfiler(BaseProfiler): "self_cuda_memory_usage", "count", ) - ACTION_NAME_START = "on_fit_start" + START_RECORD_FUNCTIONS = ('on_train_start', 'on_validation_step', 'on_test_start', 'on_predict_start') def __init__( self, @@ -245,7 +245,7 @@ def _rank_zero_only_wrap(self) -> None: def start(self, action_name: str) -> None: if not self._profiler_instantiated and action_name in ( - list(self._ACTIONS_TO_PREPARE_FILE) + list(self.record_functions) + list(self.START_RECORD_FUNCTIONS) + list(self.record_functions) ): # close profiler if it is already opened diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 7639926424090..21160e687953c 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -55,6 +55,5 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): self.trainer.profiler = profiler or PassThroughProfiler() def on_train_start(self, trainer): - if not isinstance(trainer.profiler, PassThroughProfiler): - local_rank = trainer.local_rank if trainer.world_size > 1 else None - self.trainer.profiler.on_train_start(local_rank=local_rank, log_dir=self.trainer.log_dir) + local_rank = trainer.local_rank if trainer.world_size > 1 else None + self.trainer.profiler.on_train_start(local_rank=local_rank, log_dir=self.trainer.log_dir) From 853d36c63e0720f743fa31f600d66af1050f60a2 Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 14:42:04 +0000 Subject: [PATCH 032/126] update tests --- pytorch_lightning/profiler/profilers.py | 8 ++--- tests/special_tests.sh | 2 +- tests/test_profiler.py | 40 +++++++++---------------- 3 files changed, 19 insertions(+), 31 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 93d7b3e0f604e..78def777de49c 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -21,7 +21,7 @@ from abc import ABC, abstractmethod from collections import defaultdict from contextlib import contextmanager -from typing import Optional +from typing import Dict, Optional import numpy as np @@ -73,7 +73,7 @@ def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str self.local_rank = local_rank self.log_dir = log_dir - def prepare_file(self) -> None: + def _prepare_file(self) -> None: if not self._file_prepared: if self.output_fname and self.output_file is None: fs = get_filesystem(self.output_fname) @@ -114,14 +114,14 @@ def profile_iterable(self, iterable, action_name: str) -> None: def describe(self) -> None: """Logs a profile report after the conclusion of the training run.""" - self.prepare_file() + self._prepare_file() for write in self.write_streams: write(self.summary()) if self.output_file: self.output_file.flush() self.teardown() - def stats_to_str(self, stats: dict) -> str: + def stats_to_str(self, stats: Dict[str, str]) -> str: output = ["Profiler Report"] for action, value in stats.items(): header = f"Profile stats for: {action}" diff --git a/tests/special_tests.sh b/tests/special_tests.sh index e5c6e313bb6d8..4a7b1f300f79d 100644 --- a/tests/special_tests.sh +++ b/tests/special_tests.sh @@ -28,7 +28,7 @@ python ${DEFAULTS} tests/trainer/test_trainer.py::test_trainer_predict_ddp python ${DEFAULTS} tests/trainer/test_trainer.py::test_trainer_predict_dp python ${DEFAULTS} tests/trainer/logging_/test_train_loop_logging_1_0.py::test_logging_sync_dist_true_ddp python ${DEFAULTS} tests/callbacks/test_pruning.py::test_pruning_callback_ddp -python ${DEFAULTS} tests/trainer/test_trainer.py::test_pytorch_profiler_trainer_ddp +python ${DEFAULTS} tests/test_profiler.py::test_pytorch_profiler_trainer_ddp python ${DEFAULTS} tests/models/test_hooks.py::test_transfer_batch_hook_ddp python ${DEFAULTS} tests/trainer/test_data_loading.py::test_replace_distrubuted_sampler_custom_dataloader_custom_batch_sampler python ${DEFAULTS} tests/trainer/optimization/test_manual_optimization.py::test_step_with_optimizer_closure_with_different_frequencies_ddp_with_toggle_model diff --git a/tests/test_profiler.py b/tests/test_profiler.py index d954b349c5d45..2866b78ea0a15 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -48,9 +48,7 @@ def _sleep_generator(durations): @pytest.fixture def simple_profiler(): - profiler = SimpleProfiler() - profiler.prepare_file() - return profiler + return SimpleProfiler() @pytest.mark.parametrize(["action", "expected"], [ @@ -121,9 +119,7 @@ def test_simple_profiler_value_errors(simple_profiler): @pytest.fixture def advanced_profiler(tmpdir): - profiler = AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) - profiler.prepare_file() - return profiler + return AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) @pytest.mark.parametrize(["action", "expected"], [ @@ -199,10 +195,13 @@ def test_advanced_profiler_value_errors(advanced_profiler): advanced_profiler.stop(action) -def test_pytorch_profiler_describe(tmpdir): +@pytest.fixture +def pytorch_profiler(tmpdir): + return PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) + + +def test_pytorch_profiler_describe(pytorch_profiler): """Ensure the profiler won't fail when reporting the summary.""" - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) - pytorch_profiler.prepare_file() with pytorch_profiler.profile("test_step"): pass @@ -210,12 +209,10 @@ def test_pytorch_profiler_describe(tmpdir): pytorch_profiler.describe() data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 - pytorch_profiler.teardown() -def test_pytorch_profiler_value_errors(tmpdir): +def test_pytorch_profiler_value_errors(pytorch_profiler): """Ensure errors are raised where expected.""" - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) action = "test_step" pytorch_profiler.start(action) pytorch_profiler.stop(action) @@ -226,9 +223,8 @@ def test_pytorch_profiler_value_errors(tmpdir): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir): +def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the training and default step are properly recorded. """ - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() trainer = Trainer( max_epochs=1, @@ -244,12 +240,10 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 - pytorch_profiler.teardown() -def test_pytorch_profiler_trainer_fit(tmpdir): +def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the trainer and training, validation steps are properly recorded. """ - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -265,12 +259,10 @@ def test_pytorch_profiler_trainer_fit(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 - pytorch_profiler.teardown() -def test_pytorch_profiler_trainer_test(tmpdir): +def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the trainer and test step are properly recorded. """ - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -284,12 +276,10 @@ def test_pytorch_profiler_trainer_test(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 - pytorch_profiler.teardown() -def test_pytorch_profiler_trainer_predict(tmpdir): +def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the trainer and predict function are properly recorded. """ - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) model = BoringModel() model.predict_dataloader = model.train_dataloader trainer = Trainer( @@ -304,7 +294,6 @@ def test_pytorch_profiler_trainer_predict(tmpdir): data = Path(pytorch_profiler.output_fname).read_text() assert len(data) > 0 - pytorch_profiler.teardown() @RunIf(min_gpus=1, special=True) @@ -316,6 +305,7 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): model = BoringModel() trainer = Trainer( + default_root_dir=tmpdir, fast_dev_run=True, profiler=pytorch_profiler, gpus=1, @@ -333,7 +323,6 @@ def test_pytorch_profiler_nested(tmpdir): use_cuda=torch.cuda.is_available(), output_filename=os.path.join(tmpdir, "profiler.txt") ) - pytorch_profiler.prepare_file() with pytorch_profiler.profile("a"): a = torch.ones(42) @@ -367,4 +356,3 @@ def test_pytorch_profiler_nested(tmpdir): } assert events_name == expected, (events_name, torch.__version__, platform.system()) - pytorch_profiler.teardown() From 9004e92fb2d75f6a44bcb895f9c4e0522caf3141 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Sun, 21 Mar 2021 15:31:58 +0000 Subject: [PATCH 033/126] update --- pytorch_lightning/profiler/profilers.py | 1 + pytorch_lightning/profiler/pytorch.py | 9 ++++++--- tests/test_profiler.py | 1 - 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 78def777de49c..b60c726c5b642 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -136,6 +136,7 @@ def teardown(self) -> None: if self.output_file: self.output_file.close() self.write_streams = [] + self._file_prepared = False class PassThroughProfiler(BaseProfiler): diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 45f2e92c2a504..874a4e607c784 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -280,14 +280,14 @@ def stop(self, action_name: str) -> None: del self.recording_map[action_name] def summary(self) -> str: - if not self.profiler_kwargs.get("enabled", True) or self.emit_nvtx: + if not self.profiler_kwargs.get("enabled", True): return "" local_rank = 0 if self.local_rank is None else self.local_rank - self.function_events = self.profiler.function_events self.profiler.__exit__(None, None, None) - self.function_events = self.profiler.function_events + if not self.emit_nvtx: + self.function_events = self.profiler.function_events self.profiler = None self._profiler_instantiated = False @@ -298,6 +298,9 @@ def summary(self) -> str: if self.register is not None: self.register.__exit__(None, None, None) + if self.emit_nvtx: + return "" + if self.export_to_chrome: filename = f"{local_rank}_trace.json" path_to_trace = ( diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 2866b78ea0a15..33550f3e548ba 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -311,7 +311,6 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): gpus=1, ) trainer.fit(model) - pytorch_profiler.teardown() def test_pytorch_profiler_nested(tmpdir): From c35e92790d1bf3a6cc1a9b0ac19efb2300e997dc Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 16:17:24 +0000 Subject: [PATCH 034/126] add suport for 1.8 --- .../basic_examples/profiler_example.py | 91 ++++++++++ pytorch_lightning/profiler/pytorch.py | 161 ++++++++++++++++-- .../trainer/connectors/profiler_connector.py | 2 + 3 files changed, 243 insertions(+), 11 deletions(-) create mode 100644 pl_examples/basic_examples/profiler_example.py diff --git a/pl_examples/basic_examples/profiler_example.py b/pl_examples/basic_examples/profiler_example.py new file mode 100644 index 0000000000000..74ee25d4f61cc --- /dev/null +++ b/pl_examples/basic_examples/profiler_example.py @@ -0,0 +1,91 @@ +# Copyright The PyTorch Lightning team. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +This script will generate 2 traces: one for `training_step` and one for `validation_step`. +The traces can be visualized in 2 ways: +* With Chrome: + 1. Open Chrome and copy/paste this url: `chrome://tracing/`. + 2. Once tracing opens, click on `Load` at the top-right and load one of the generated traces. +* With PyTorch Tensorboard Profiler (Instructions are here: https://github.com/pytorch/kineto/tree/master/tb_plugin) + 1. pip install tensorboard torch-tb-profiler + 2. tensorboard --logdir={FOLDER} +""" + +import sys +from argparse import ArgumentParser + +import torch +import torchvision +import torchvision.models as models +import torchvision.transforms as T + +from pl_examples import cli_lightning_logo +from pytorch_lightning import LightningDataModule, LightningModule, Trainer + +DEFAULT_CMD_LINE = "--max_epochs 1 --limit_train_batches 15 --limit_val_batches 15 --profiler pytorch".split(" ") + + +class ModelToProfile(LightningModule): + + def __init__(self, model): + super().__init__() + self.model = model + self.criterion = torch.nn.CrossEntropyLoss() + + def training_step(self, batch, batch_idx): + inputs, labels = batch + outputs = self.model(inputs) + loss = self.criterion(outputs, labels) + self.log("train_loss", loss) + return loss + + def validation_step(self, batch, batch_idx): + inputs, labels = batch + outputs = self.model(inputs) + loss = self.criterion(outputs, labels) + self.log("val_loss", loss) + + def configure_optimizers(self): + return torch.optim.SGD(self.parameters(), lr=0.001, momentum=0.9) + + +class CIFAR10DataModule(LightningDataModule): + + transform = T.Compose([T.Resize(256), T.CenterCrop(224), T.ToTensor()]) + + def train_dataloader(self, *args, **kwargs): + trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=self.transform) + return torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=True, num_workers=0) + + def val_dataloader(self, *args, **kwargs): + valset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=self.transform) + return torch.utils.data.DataLoader(valset, batch_size=32, shuffle=True, num_workers=0) + + +def cli_main(): + + parser = ArgumentParser() + parser = Trainer.add_argparse_args(parser) + cmd_line = None if len(sys.argv) != 1 else DEFAULT_CMD_LINE + args = parser.parse_args(args=cmd_line) + + model = ModelToProfile(models.resnet50(pretrained=True)) + datamodule = CIFAR10DataModule() + trainer = Trainer(**vars(args)) + trainer.fit(model, datamodule=datamodule) + + +if __name__ == '__main__': + cli_lightning_logo() + cli_main() diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 874a4e607c784..8ebdda30319a4 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -16,7 +16,7 @@ import logging import os from functools import partial -from typing import Any, Dict, List, Optional, Type, Union +from typing import Any, Callable, Dict, List, Optional, Type, Union import torch from torch.autograd.profiler import EventList, record_function @@ -25,6 +25,7 @@ from pytorch_lightning.utilities import rank_zero_only from pytorch_lightning.utilities.distributed import rank_zero_warn from pytorch_lightning.utilities.exceptions import MisconfigurationException +from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8 log = logging.getLogger(__name__) @@ -85,11 +86,69 @@ def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): h.remove() +if _TORCH_GREATER_EQUAL_1_8: + from torch.profiler import ProfilerAction, ProfilerActivity, tensorboard_trace_handler + + class ScheduleWrapper: + """ + This class is used to override the schedule logic from the profiler and perform + recording for both `training_step`, `validation_step`. + """ + + def __init__(self, schedule: Callable) -> None: + self._schedule = schedule + self._num_training_step_and_backward = 0 + self._num_validation_step = 0 + self._training_step_and_backward_reached_end = False + self._validation_step_reached_end = False + # used to stop profiler when `ProfilerAction.RECORD_AND_SAVE` is reached. + self._current_action = None + + @property + def num_step(self) -> int: + if self._current_action == "training_step_and_backward": + return self._num_training_step_and_backward + elif self._current_action == "validation_step": + return self._num_validation_step + else: + return 0 + + def _step(self) -> None: + if self._current_action == "training_step_and_backward": + self._num_training_step_and_backward += 1 + elif self._current_action == "validation_step" and self._num_training_step_and_backward > 0: + # skip sanity check + self._num_validation_step += 1 + + @property + def has_finished(self) -> bool: + if self._current_action == "training_step_and_backward": + return self._training_step_and_backward_reached_end + elif self._current_action == "validation_step": + return self._validation_step_reached_end + return False + + def __call__(self, num_step: int) -> 'ProfilerAction': + # ignore the provided input. Keep internal state instead. + if self.has_finished: + return ProfilerAction.NONE + + self._step() + action = self._schedule(self.num_step) + if action == ProfilerAction.RECORD_AND_SAVE: + if self._current_action == "training_step_and_backward": + self._training_step_and_backward_reached_end = True + elif self._current_action == "validation_step": + self._validation_step_reached_end = True + return action + + class PyTorchProfiler(BaseProfiler): RECORD_FUNCTIONS = ( "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict" ) + STEP_FUNCTIONS = ("training_step_and_backward", "validation_step", "test_step", "predict") AVAILABLE_SORT_KEYS = ( "cpu_time", "cuda_time", @@ -116,6 +175,12 @@ def __init__( local_rank: Optional[int] = None, profiled_functions: List[str] = [], record_module_names: bool = True, + schedule: Optional[Callable] = None, + on_trace_ready: Optional[Callable] = None, + export_to_flame_graph: bool = True, + with_flops: bool = True, + metric: str = 'self_cpu_time_total', + activities: Optional[List] = None, **profiler_kwargs: Any, ) -> None: """ @@ -165,6 +230,18 @@ def __init__( record_module_names: Whether to add module names while recording autograd operation. + schedule: Whether to apply a scheduling regime for recording. Available for PyTorch 1.8 + + on_trace_ready: Whether apply a hook when the trace is ready. Available for PyTorch 1.8 + + export_to_flame_graph: Whether to export to flame. Available for PyTorch 1.8 + + with_flops: Whether to record flops. Available for PyTorch 1.8 + + metric: Record metric. Available for PyTorch 1.8 + + activities: Activites to be recorded. Available for PyTorch 1.8 + Raises: MisconfigurationException: If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``, or @@ -177,20 +254,61 @@ def __init__( record_functions = self.__deprecation_check(profiled_functions, record_functions) + if (not _TORCH_GREATER_EQUAL_1_8): + rank_zero_warn( + "Arguments `schedule`, `on_trace_ready`, `export_to_flame_graph`, `with_flops`, `metric` " + "will be used only with PyTorch 1.8" + ) + + # common arguments self.output_fname = output_filename self.record_functions = record_functions + list(self.RECORD_FUNCTIONS) self.sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" self.group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) self.row_limit = row_limit - self.emit_nvtx = emit_nvtx self.export_to_chrome = export_to_chrome self.path_to_export_trace = path_to_export_trace self.record_module_names = record_module_names + self.profiler: Optional[_PROFILER] = None self.lightning_module = None # set by ProfilerConnector self.register = None - self.profiler_kwargs = profiler_kwargs - self.profiler = None + self.recording_map: Dict[str, record_function] = {} + self._profiler_instantiated: bool = False + self.on_trace_ready = None self._parent_profiler = None + self.schedule = None + + if _TORCH_GREATER_EQUAL_1_8: + if schedule is not None: + if not isinstance(schedule, Callable): + raise MisconfigurationException(f"Found schedule: {schedule}. Schedule should be a callable.") + action = schedule(0) + if not isinstance(action, ProfilerAction): + raise MisconfigurationException( + f"Found schedule: {schedule}. " + "Schedule should be a callable returning `torch.profiler.ProfilerAction`. " + ) + + if isinstance(sort_by_key, str) and sort_by_key not in self.AVAILABLE_SORT_KEYS: + raise MisconfigurationException( + f"Found sort_by_key: {sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " + ) + self.record_functions_managers = {} + self.activities = activities or [ProfilerActivity.CPU] + [ProfilerActivity.CUDA] * torch.cuda.is_available() + + schedule = schedule or torch.profiler.schedule(wait=1, warmup=1, active=2) + self.schedule = ScheduleWrapper(schedule) + self.on_trace_ready = on_trace_ready + self.export_to_flame_graph = export_to_flame_graph + self.with_flops = with_flops + self.metric = metric + self.emit_nvtx = False + + else: + self.emit_nvtx = emit_nvtx + self.function_events: Optional[EventList] = None + + self.profiler_kwargs = profiler_kwargs if self.export_to_chrome and self.path_to_export_trace is None: rank_zero_warn( @@ -203,11 +321,6 @@ def __init__( f"Found sort_by_key: {self.sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - self.recording_map: Dict[str, record_function] = {} - self.profiler: Optional[_PROFILER] = None - self.function_events: Optional[EventList] = None - self._profiler_instantiated: bool = False - super().__init__(output_filename=output_filename, local_rank=local_rank) def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: @@ -274,11 +387,35 @@ def start(self, action_name: str) -> None: recording.__enter__() self.recording_map[action_name] = recording + if self.schedule is not None: + self.schedule._current_action = action_name + def stop(self, action_name: str) -> None: if action_name in self.recording_map: self.recording_map[action_name].__exit__(None, None, None) del self.recording_map[action_name] + if not _TORCH_GREATER_EQUAL_1_8: + return + + if action_name in self.STEP_FUNCTIONS: + if self.schedule is not None: + self.schedule._current_action = action_name + + def on_trace_ready(profiler): + local_rank = 0 if self.local_rank is None else self.local_rank + filename = f"{action_name}_{local_rank}" + + if self.export_to_chrome: + tensorboard_trace_handler(self.path_to_export_trace, filename)(profiler) + + if self.export_to_flame_graph: + path = os.path.join(self.path_to_export_trace, f"{filename}.stack") + profiler.export_stacks(path, metric=self.metric) + + self.profiler.on_trace_ready = on_trace_ready + self.profiler.step() + def summary(self) -> str: if not self.profiler_kwargs.get("enabled", True): return "" @@ -321,8 +458,10 @@ def _create_profilers(self) -> None: self._parent_profiler = self._create_profiler(torch.cuda.profiler.profile) self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) else: - self._parent_profiler = None - self.profiler = self._create_profiler(torch.autograd.profiler.profile) + if _TORCH_GREATER_EQUAL_1_8: + self.profiler = self._create_profiler(torch.profiler.profile) + else: + self.profiler = self._create_profiler(torch.autograd.profiler.profile) def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 21160e687953c..27d4d1fc152f2 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -13,6 +13,7 @@ # limitations under the License from typing import Union +from weakref import proxy from pytorch_lightning.profiler import ( AdvancedProfiler, @@ -56,4 +57,5 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): def on_train_start(self, trainer): local_rank = trainer.local_rank if trainer.world_size > 1 else None + self.trainer.profiler.lightning_module = proxy(trainer.lightning_module) self.trainer.profiler.on_train_start(local_rank=local_rank, log_dir=self.trainer.log_dir) From 1f9d2d9ff3876ba7d36dd4f7f1ffbcbb907565fb Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Sun, 21 Mar 2021 16:57:38 +0000 Subject: [PATCH 035/126] rename records --- pytorch_lightning/profiler/pytorch.py | 40 +++++++++++++++------------ 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 8ebdda30319a4..18c6aa8aa383b 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -54,28 +54,28 @@ def __init__(self, model): self._records = {} self.handles = {} - def _start_recording_forward(self, module, input, module_name: str = None, is_built_in: bool = None): + def _start_recording_forward(self, module, input, module_name: str = None): if module_name is not None: - record_name = module_name if is_built_in else f"{type(module)}: {module_name}" - self._records[record_name] = record_function(record_name).__enter__() + full_name = type(module).__module__ + '.' + type(module).__name__ + record_name = f"{full_name}: {module_name}" + self._records[record_name] = record_function(f"{full_name}: {module_name}").__enter__() return input - def _stop_recording_forward(self, module, input, result, module_name: str = None, is_built_in: bool = None): + def _stop_recording_forward(self, module, input, result, module_name: str = None): if module_name is not None: - record_name = module_name if is_built_in else f"{type(module)}: {module_name}" + full_name = type(module).__module__ + '.' + type(module).__name__ + record_name = f"{full_name}: {module_name}" self._records[record_name].__exit__(None, None, None) return result def __enter__(self): - built_in_modules = dir(torch.nn) for module_name, module in self._model.named_modules(): if module_name != '': - is_built_in = module in built_in_modules pre_forward_handle = module.register_forward_pre_hook( - partial(self._start_recording_forward, module_name=module_name, is_built_in=is_built_in) + partial(self._start_recording_forward, module_name=module_name) ) post_forward_handle = module.register_forward_hook( - partial(self._stop_recording_forward, module_name=module_name, is_built_in=is_built_in) + partial(self._stop_recording_forward, module_name=module_name) ) self.handles[module_name] = [pre_forward_handle, post_forward_handle] @@ -181,6 +181,7 @@ def __init__( with_flops: bool = True, metric: str = 'self_cpu_time_total', activities: Optional[List] = None, + with_stack: bool = False, **profiler_kwargs: Any, ) -> None: """ @@ -230,6 +231,8 @@ def __init__( record_module_names: Whether to add module names while recording autograd operation. + with_stack: record source information (file and line number) for the ops (Introduced in PyTorch 1.7.0) + schedule: Whether to apply a scheduling regime for recording. Available for PyTorch 1.8 on_trace_ready: Whether apply a hook when the trace is ready. Available for PyTorch 1.8 @@ -294,7 +297,7 @@ def __init__( f"Found sort_by_key: {sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) self.record_functions_managers = {} - self.activities = activities or [ProfilerActivity.CPU] + [ProfilerActivity.CUDA] * torch.cuda.is_available() + self.activities = activities or [ProfilerActivity.CPU] + [ProfilerActivity.CUDA] * int(torch.cuda.is_available()) schedule = schedule or torch.profiler.schedule(wait=1, warmup=1, active=2) self.schedule = ScheduleWrapper(schedule) @@ -303,6 +306,7 @@ def __init__( self.with_flops = with_flops self.metric = metric self.emit_nvtx = False + self.with_stack = export_to_flame_graph or with_stack else: self.emit_nvtx = emit_nvtx @@ -350,6 +354,10 @@ def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str if local_rank is not None and local_rank > 0 and self.output_fname is None: self._rank_zero_only_wrap() + if self._profiler_instantiated and self.record_module_names and self.lightning_module is not None: + self.register = RegisterRecordFunction(self.lightning_module) + self.register.__enter__() + def _rank_zero_only_wrap(self) -> None: self.start = rank_zero_only(self.start) self.stop = rank_zero_only(self.stop) @@ -375,10 +383,6 @@ def start(self, action_name: str) -> None: self._profiler_instantiated = True - if self.record_module_names and self.lightning_module is not None: - self.register = RegisterRecordFunction(self.lightning_module) - self.register.__enter__() - if ( self._profiler_instantiated and action_name in self.record_functions and action_name not in self.recording_map @@ -423,8 +427,10 @@ def summary(self) -> str: local_rank = 0 if self.local_rank is None else self.local_rank self.profiler.__exit__(None, None, None) - if not self.emit_nvtx: + if not _TORCH_GREATER_EQUAL_1_8: self.function_events = self.profiler.function_events + else: + self.function_events = self.profiler.events() self.profiler = None self._profiler_instantiated = False @@ -438,7 +444,7 @@ def summary(self) -> str: if self.emit_nvtx: return "" - if self.export_to_chrome: + if self.export_to_chrome and not _TORCH_GREATER_EQUAL_1_8: filename = f"{local_rank}_trace.json" path_to_trace = ( filename if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) @@ -465,7 +471,7 @@ def _create_profilers(self) -> None: def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters - kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} + kwargs = {k: v for k, v in vars(self).items() if k in init_parameters} return profiler(**kwargs) def teardown(self): From 13caa86567c98755a608806860aefeb68085d167 Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 16:59:41 +0000 Subject: [PATCH 036/126] add support for 1.8 --- pytorch_lightning/profiler/pytorch.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 18c6aa8aa383b..218e799cc6399 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -56,14 +56,14 @@ def __init__(self, model): def _start_recording_forward(self, module, input, module_name: str = None): if module_name is not None: - full_name = type(module).__module__ + '.' + type(module).__name__ + full_name = type(module).__module__ + '.' + type(module).__name__ record_name = f"{full_name}: {module_name}" self._records[record_name] = record_function(f"{full_name}: {module_name}").__enter__() return input def _stop_recording_forward(self, module, input, result, module_name: str = None): if module_name is not None: - full_name = type(module).__module__ + '.' + type(module).__name__ + full_name = type(module).__module__ + '.' + type(module).__name__ record_name = f"{full_name}: {module_name}" self._records[record_name].__exit__(None, None, None) return result @@ -297,7 +297,7 @@ def __init__( f"Found sort_by_key: {sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) self.record_functions_managers = {} - self.activities = activities or [ProfilerActivity.CPU] + [ProfilerActivity.CUDA] * int(torch.cuda.is_available()) + self.activities = activities or self._default_activities() schedule = schedule or torch.profiler.schedule(wait=1, warmup=1, active=2) self.schedule = ScheduleWrapper(schedule) @@ -327,6 +327,12 @@ def __init__( super().__init__(output_filename=output_filename, local_rank=local_rank) + @staticmethod + def _default_activities(): + if _TORCH_GREATER_EQUAL_1_8: + return [ProfilerActivity.CPU] + [ProfilerActivity.CUDA] * int(torch.cuda.is_available()) + return [] + def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: if profiled_functions is not None: rank_zero_warn( From 18c48ce7f05b7bdf0e7858ac934748b3f4f2f92f Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Sun, 21 Mar 2021 17:47:42 +0000 Subject: [PATCH 037/126] update --- pytorch_lightning/profiler/pytorch.py | 11 +++ tests/test_profiler.py | 96 ++++++++++++++++++++------- 2 files changed, 83 insertions(+), 24 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 218e799cc6399..c14744810c565 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -99,6 +99,8 @@ def __init__(self, schedule: Callable) -> None: self._schedule = schedule self._num_training_step_and_backward = 0 self._num_validation_step = 0 + self._num_test_step = 0 + self._num_predict_step = 0 self._training_step_and_backward_reached_end = False self._validation_step_reached_end = False # used to stop profiler when `ProfilerAction.RECORD_AND_SAVE` is reached. @@ -110,6 +112,10 @@ def num_step(self) -> int: return self._num_training_step_and_backward elif self._current_action == "validation_step": return self._num_validation_step + elif self._current_action == "test_step": + return self._num_test_step + elif self._current_action == "predict": + return self._num_predict_step else: return 0 @@ -119,6 +125,10 @@ def _step(self) -> None: elif self._current_action == "validation_step" and self._num_training_step_and_backward > 0: # skip sanity check self._num_validation_step += 1 + elif self._current_action == "test_step": + self._num_test_step += 1 + elif self._current_action == "predict": + self._num_predict_step += 1 @property def has_finished(self) -> bool: @@ -437,6 +447,7 @@ def summary(self) -> str: self.function_events = self.profiler.function_events else: self.function_events = self.profiler.events() + self.profiler = None self._profiler_instantiated = False diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 33550f3e548ba..1231c578c1d8a 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -28,6 +28,7 @@ from pytorch_lightning.utilities.exceptions import MisconfigurationException from tests.helpers import BoringModel from tests.helpers.runif import RunIf +from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8 PROFILER_OVERHEAD_MAX_TOLERANCE = 0.0005 @@ -200,8 +201,10 @@ def pytorch_profiler(tmpdir): return PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) +@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="This feature isn't support with PyTorch 1.8 profiler") def test_pytorch_profiler_describe(pytorch_profiler): """Ensure the profiler won't fail when reporting the summary.""" + pytorch_profiler.start("on_test_start") with pytorch_profiler.profile("test_step"): pass @@ -238,8 +241,18 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): ) trainer.fit(model) - data = Path(pytorch_profiler.output_fname).read_text() - assert len(data) > 0 + if not _TORCH_GREATER_EQUAL_1_8: + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 + else: + files = os.listdir(trainer.profiler.path_to_export_trace) + files = sorted([file for file in files if file.endswith('.json')]) + if os.getenv("LOCAL_RANK", "0") == "0": + assert 'training_step_and_backward_0' in files[0] + assert 'validation_step_0' in files[2] + else: + assert 'training_step_and_backward_1' in files[1] + assert 'validation_step_1' in files[3] def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): @@ -248,38 +261,50 @@ def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, - limit_train_batches=1, - limit_val_batches=1, + limit_train_batches=5, + limit_val_batches=5, profiler=pytorch_profiler, ) trainer.fit(model) - expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') - for name in expected: - assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0 - data = Path(pytorch_profiler.output_fname).read_text() - assert len(data) > 0 + if not _TORCH_GREATER_EQUAL_1_8: + expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') + for name in expected: + assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0 + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 + else: + files = os.listdir(tmpdir if pytorch_profiler == PyTorchProfiler else trainer.profiler.path_to_export_trace) + files = sorted([file for file in files if file.endswith('.json')]) + assert 'training_step_and_backward_0' in files[0] + assert 'validation_step_0' in files[1] + assert len(files) == 2 -def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_test(tmpdir): """Ensure that the profiler can be given to the trainer and test step are properly recorded. """ + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir) model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, - limit_test_batches=2, + limit_test_batches=10, profiler=pytorch_profiler, ) trainer.test(model) - assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 - - data = Path(pytorch_profiler.output_fname).read_text() - assert len(data) > 0 + if not _TORCH_GREATER_EQUAL_1_8: + assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 + else: + files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) + assert 'test_step_0' in files[0] -def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_predict(tmpdir): """Ensure that the profiler can be given to the trainer and predict function are properly recorded. """ + pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir) model = BoringModel() model.predict_dataloader = model.train_dataloader trainer = Trainer( @@ -290,13 +315,18 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): ) trainer.predict(model) - assert len([e for e in pytorch_profiler.function_events if 'predict' == e.name]) > 0 + if not _TORCH_GREATER_EQUAL_1_8: + assert len([e for e in pytorch_profiler.function_events if 'predict' == e.name]) > 0 + data = Path(pytorch_profiler.output_fname).read_text() + assert len(data) > 0 + else: + files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) + assert 'predict_0' in files[0] - data = Path(pytorch_profiler.output_fname).read_text() - assert len(data) > 0 @RunIf(min_gpus=1, special=True) +@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="This feature isn't support with PyTorch 1.8 profiler") def test_pytorch_profiler_nested_emit_nvtx(tmpdir): """ This test check emit_nvtx is correctly supported @@ -313,6 +343,7 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): trainer.fit(model) +@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="This feature isn't support with PyTorch 1.8 profiler") def test_pytorch_profiler_nested(tmpdir): """Ensure that the profiler handles nested context""" @@ -349,9 +380,26 @@ def test_pytorch_profiler_nested(tmpdir): 'aten::zeros', 'aten::add', 'aten::zero_', 'c', 'b', 'a', 'aten::fill_', 'aten::empty', 'aten::ones' } - if LooseVersion(torch.__version__) >= LooseVersion("1.8.0"): - expected = { - 'aten::ones', 'a', 'aten::add', 'aten::empty', 'aten::zero_', 'b', 'c', 'aten::zeros', 'aten::fill_' - } - assert events_name == expected, (events_name, torch.__version__, platform.system()) + + +@pytest.mark.skipif(not _TORCH_GREATER_EQUAL_1_8, reason="Need at least PyTorch 1.8") +@pytest.mark.parametrize('profiler', ('pytorch', PyTorchProfiler)) +def test_pytorch_profiler_trainer_new_api(tmpdir, profiler): + """Ensure that the profiler can be given to the training and default step are properly recorded. """ + + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + max_epochs=1, + limit_train_batches=10, + limit_val_batches=10, + profiler=profiler if isinstance(profiler, str) else profiler(path_to_export_trace=tmpdir), + ) + trainer.fit(model) + + files = os.listdir(tmpdir if profiler == PyTorchProfiler else trainer.profiler.path_to_export_trace) + files = sorted([file for file in files if file.endswith('.json')]) + assert 'training_step_and_backward_0' in files[0] + assert 'validation_step_0' in files[1] + assert len(files) == 2 \ No newline at end of file From a1c37ad21f67e489aa7efe09016a53893d74c09c Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 17:50:46 +0000 Subject: [PATCH 038/126] resolve flake8 --- pytorch_lightning/profiler/pytorch.py | 2 +- tests/test_profiler.py | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index c14744810c565..0cca92f0e1ec8 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -447,7 +447,7 @@ def summary(self) -> str: self.function_events = self.profiler.function_events else: self.function_events = self.profiler.events() - + self.profiler = None self._profiler_instantiated = False diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 1231c578c1d8a..f5dc9803b600a 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -26,9 +26,9 @@ from pytorch_lightning.loggers import TensorBoardLogger from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler from pytorch_lightning.utilities.exceptions import MisconfigurationException +from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8 from tests.helpers import BoringModel from tests.helpers.runif import RunIf -from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8 PROFILER_OVERHEAD_MAX_TOLERANCE = 0.0005 @@ -252,7 +252,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): assert 'validation_step_0' in files[2] else: assert 'training_step_and_backward_1' in files[1] - assert 'validation_step_1' in files[3] + assert 'validation_step_1' in files[3] def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): @@ -283,7 +283,9 @@ def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): def test_pytorch_profiler_trainer_test(tmpdir): """Ensure that the profiler can be given to the trainer and test step are properly recorded. """ - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir) + pytorch_profiler = PyTorchProfiler( + output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir + ) model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -304,7 +306,9 @@ def test_pytorch_profiler_trainer_test(tmpdir): def test_pytorch_profiler_trainer_predict(tmpdir): """Ensure that the profiler can be given to the trainer and predict function are properly recorded. """ - pytorch_profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir) + pytorch_profiler = PyTorchProfiler( + output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir + ) model = BoringModel() model.predict_dataloader = model.train_dataloader trainer = Trainer( @@ -324,7 +328,6 @@ def test_pytorch_profiler_trainer_predict(tmpdir): assert 'predict_0' in files[0] - @RunIf(min_gpus=1, special=True) @pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="This feature isn't support with PyTorch 1.8 profiler") def test_pytorch_profiler_nested_emit_nvtx(tmpdir): @@ -402,4 +405,4 @@ def test_pytorch_profiler_trainer_new_api(tmpdir, profiler): files = sorted([file for file in files if file.endswith('.json')]) assert 'training_step_and_backward_0' in files[0] assert 'validation_step_0' in files[1] - assert len(files) == 2 \ No newline at end of file + assert len(files) == 2 From 3750b22e596c140a314cca075fe4c82381775411 Mon Sep 17 00:00:00 2001 From: tchaton Date: Sun, 21 Mar 2021 19:03:10 +0000 Subject: [PATCH 039/126] resolve test --- pytorch_lightning/profiler/pytorch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 0cca92f0e1ec8..6288dd25db4da 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -58,7 +58,10 @@ def _start_recording_forward(self, module, input, module_name: str = None): if module_name is not None: full_name = type(module).__module__ + '.' + type(module).__name__ record_name = f"{full_name}: {module_name}" - self._records[record_name] = record_function(f"{full_name}: {module_name}").__enter__() + # PyTorch 1.4 ``record_function`` __enter__ doesn't return self # noqa E265 + record = record_function(f"{full_name}: {module_name}") + record.__enter__() + self._records[record_name] = record return input def _stop_recording_forward(self, module, input, result, module_name: str = None): From fbbb9a2d310bf7548f9938b151a395df0b454984 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 01:33:33 +0100 Subject: [PATCH 040/126] Refactor basic profilers --- pytorch_lightning/profiler/profilers.py | 177 +++++++++++++----------- pytorch_lightning/profiler/pytorch.py | 52 ++----- 2 files changed, 106 insertions(+), 123 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index d704ba83236c1..e7cb263b1d26e 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -21,7 +21,7 @@ from abc import ABC, abstractmethod from collections import defaultdict from contextlib import contextmanager -from typing import Optional, Union +from typing import Dict, Optional import numpy as np @@ -30,22 +30,8 @@ log = logging.getLogger(__name__) -class BaseProfiler(ABC): - """ - If you wish to write a custom profiler, you should inhereit from this class. - """ - - def __init__(self, output_streams: Optional[Union[list, tuple]] = None): - """ - Args: - output_streams: callable - """ - if output_streams: - if not isinstance(output_streams, (list, tuple)): - output_streams = [output_streams] - else: - output_streams = [] - self.write_streams = output_streams +class AbstractProfiler(ABC): + """Specification of a profiler.""" @abstractmethod def start(self, action_name: str) -> None: @@ -55,6 +41,49 @@ def start(self, action_name: str) -> None: def stop(self, action_name: str) -> None: """Defines how to record the duration once an action is complete.""" + @abstractmethod + def summary(self) -> str: + """Create profiler summary in text format.""" + + def teardown(self) -> None: + """Execute arbitrary post-profiling tear-down steps as defined by subclass.""" + + +class BaseProfiler(AbstractProfiler): + """ + If you wish to write a custom profiler, you should inherit from this class. + """ + + def __init__( + self, + output_filename: Optional[str] = None, + local_rank: Optional[int] = None, + log_dir: Optional[str] = None + ) -> None: + self.output_fname = output_filename + self.output_file = None + self._file_prepared = False + self.write_streams = [] + # the profiler can be used outside of lightning + # that's why we call `on_train_start` manually + self.on_train_start(local_rank=local_rank, log_dir=log_dir) + + def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None): + """ + This function is used by the Trainer to inject local_rank with `DDP` + and `TensorBoardLogger` log_dir in the profiler. + """ + self.local_rank = local_rank + self.log_dir = log_dir + + def _prepare_file(self) -> None: + if not self._file_prepared: + if self.output_fname and self.output_file is None: + fs = get_filesystem(self.output_fname) + self.output_file = fs.open(self.output_fname, "w") + self.write_streams = [self.output_file.write] if self.output_file else [log.info] + self._file_prepared = True + @contextmanager def profile(self, action_name: str) -> None: """ @@ -88,15 +117,41 @@ def profile_iterable(self, iterable, action_name: str) -> None: def describe(self) -> None: """Logs a profile report after the conclusion of the training run.""" + self._prepare_file() for write in self.write_streams: write(self.summary()) + if self.output_file: + self.output_file.flush() + self.teardown() + + def stats_to_str(self, stats: Dict[str, str]) -> str: + output = ["Profiler Report"] + for action, value in stats.items(): + header = f"Profile stats for: {action}" + if getattr(self, "local_rank", None) is not None: + header += f" rank: {self.local_rank}" + output.append(header) + output.append(value) + return os.linesep.join(output) + + def teardown(self) -> None: + """Close profiler's stream.""" + if self.output_file: + self.output_file.close() + self.write_streams = [] + self._file_prepared = False - @abstractmethod - def summary(self) -> str: - """Create profiler summary in text format.""" + def __del__(self): + self.teardown() - def on_train_start(self, local_rank: Optional[int] = None): - self.local_rank = local_rank + def start(self, action_name: str) -> None: + raise NotImplementedError + + def stop(self, action_name: str) -> None: + raise NotImplementedError + + def summary(self) -> str: + raise NotImplementedError class PassThroughProfiler(BaseProfiler): @@ -105,9 +160,6 @@ class PassThroughProfiler(BaseProfiler): The Trainer uses this class by default. """ - def __init__(self): - super().__init__(output_streams=None) - def start(self, action_name: str) -> None: pass @@ -117,6 +169,9 @@ def stop(self, action_name: str) -> None: def summary(self) -> str: return "" + def teardown(self) -> None: + pass + class SimpleProfiler(BaseProfiler): """ @@ -124,7 +179,7 @@ class SimpleProfiler(BaseProfiler): the mean duration of each action and the total time spent over the entire training run. """ - def __init__(self, output_filename: Optional[str] = None, extended=True): + def __init__(self, output_filename: Optional[str] = None, extended: bool = True): """ Args: output_filename: optionally save profile results to file instead of printing @@ -135,19 +190,12 @@ def __init__(self, output_filename: Optional[str] = None, extended=True): If you attempt to start an action which has already started, or if you attempt to stop recording an action which was never started. """ + self.output_fname = output_filename self.current_actions = {} self.recorded_durations = defaultdict(list) self.extended = extended - - self.output_fname = output_filename - self.output_file = None - if self.output_fname: - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") - - streaming_out = [self.output_file.write] if self.output_file else [log.info] + super().__init__() self.start_time = time.monotonic() - super().__init__(output_streams=streaming_out) def start(self, action_name: str) -> None: if action_name in self.current_actions: @@ -169,7 +217,8 @@ def make_report(self): return report, total_duration def summary(self) -> str: - output_string = "\n\nProfiler Report\n" + sep = os.linesep + output_string = f"Profiler Report{sep}" if self.extended: @@ -177,16 +226,16 @@ def summary(self) -> str: max_key = np.max([len(k) for k in self.recorded_durations.keys()]) def log_row(action, mean, num_calls, total, per): - row = f"{os.linesep}{action:<{max_key}s}\t| {mean:<15}\t|" + row = f"{sep}{action:<{max_key}s}\t| {mean:<15}\t|" row += f"{num_calls:<15}\t| {total:<15}\t| {per:<15}\t|" return row output_string += log_row("Action", "Mean duration (s)", "Num calls", "Total time (s)", "Percentage %") output_string_len = len(output_string) - output_string += f"{os.linesep}{'-' * output_string_len}" + output_string += f"{sep}{'-' * output_string_len}" report, total_duration = self.make_report() output_string += log_row("Total", "-", "_", f"{total_duration:.5}", "100 %") - output_string += f"{os.linesep}{'-' * output_string_len}" + output_string += f"{sep}{'-' * output_string_len}" for action, durations, duration_per in report: output_string += log_row( action, @@ -198,27 +247,16 @@ def log_row(action, mean, num_calls, total, per): else: def log_row(action, mean, total): - return f"{os.linesep}{action:<20s}\t| {mean:<15}\t| {total:<15}" + return f"{sep}{action:<20s}\t| {mean:<15}\t| {total:<15}" output_string += log_row("Action", "Mean duration (s)", "Total time (s)") - output_string += f"{os.linesep}{'-' * 65}" + output_string += f"{sep}{'-' * 65}" for action, durations in self.recorded_durations.items(): output_string += log_row(action, f"{np.mean(durations):.5}", f"{np.sum(durations):.5}") - output_string += os.linesep + output_string += sep return output_string - def describe(self): - """Logs a profile report after the conclusion of the training run.""" - super().describe() - if self.output_file: - self.output_file.flush() - - def __del__(self): - """Close profiler's stream.""" - if self.output_file: - self.output_file.close() - class AdvancedProfiler(BaseProfiler): """ @@ -240,18 +278,10 @@ def __init__(self, output_filename: Optional[str] = None, line_count_restriction ValueError: If you attempt to stop recording an action which was never started. """ + super().__init__(output_filename=output_filename) self.profiled_actions = {} self.line_count_restriction = line_count_restriction - self.output_fname = output_filename - self.output_file = None - if self.output_fname: - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") - - streaming_out = [self.output_file.write] if self.output_file else [log.info] - super().__init__(output_streams=streaming_out) - def start(self, action_name: str) -> None: if action_name not in self.profiled_actions: self.profiled_actions[action_name] = cProfile.Profile() @@ -260,9 +290,7 @@ def start(self, action_name: str) -> None: def stop(self, action_name: str) -> None: pr = self.profiled_actions.get(action_name) if pr is None: - raise ValueError( # pragma: no-cover - f"Attempting to stop recording an action ({action_name}) which was never started." - ) + raise ValueError(f"Attempting to stop recording an action ({action_name}) which was never started.") pr.disable() def summary(self) -> str: @@ -272,21 +300,4 @@ def summary(self) -> str: ps = pstats.Stats(pr, stream=s).strip_dirs().sort_stats('cumulative') ps.print_stats(self.line_count_restriction) recorded_stats[action_name] = s.getvalue() - - # log to standard out - output_string = f"{os.linesep}Profiler Report{os.linesep}" - for action, stats in recorded_stats.items(): - output_string += f"{os.linesep}Profile stats for: {action}{os.linesep}{stats}" - - return output_string - - def describe(self): - """Logs a profile report after the conclusion of the training run.""" - super().describe() - if self.output_file: - self.output_file.flush() - - def __del__(self): - """Close profiler's stream.""" - if self.output_file: - self.output_file.close() + return self.stats_to_str(recorded_stats) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 88a33a3d367f8..30c553ee46e57 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -159,33 +159,21 @@ def __init__( self.running_stack = [] self.profiler = None - self.output_fname = output_filename - self.output_file = None - if local_rank is not None: - self.on_train_start(local_rank=local_rank) - self.on_train_start = super().on_train_start + super().__init__(output_filename=output_filename, local_rank=local_rank) - def on_train_start(self, local_rank: Optional[str] = None): - self.local_rank = local_rank + def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: + super().on_train_start(local_rank=local_rank, log_dir=log_dir) - # when logging to `log.info`, only perform profiling on rank 0 - if local_rank != 0 and self.output_fname is None: - self.wrap_functions_into_rank_zero_only() - - if self.output_fname: - if local_rank is not None: - if '.txt' not in self.output_fname: - raise MisconfigurationException("Log file should be .txt file.") - - self.output_fname = self.output_fname.replace(".txt", f"_{self.local_rank}.txt") - - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") + # if the user didn't provide `path_to_export_trace`, + # set it as TensorBoardLogger log_dir if exists + if self.path_to_export_trace is None: + self.path_to_export_trace = log_dir - streaming_out = [self.output_file.write] if self.output_file else [log.info] - super().__init__(output_streams=streaming_out) + # when logging to `log.info`, only perform profiling on rank 0 + if local_rank is not None and local_rank > 0 and self.output_fname is None: + self._rank_zero_only_wrap() - def wrap_functions_into_rank_zero_only(self): + def _rank_zero_only_wrap(self) -> None: self.start = rank_zero_only(self.start) self.stop = rank_zero_only(self.stop) self.summary = rank_zero_only(self.summary) @@ -284,20 +272,4 @@ def summary(self) -> str: table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) recorded_stats[action_name] = table - # log to standard out - output_string = f"{os.linesep}Profiler Report{os.linesep}" - for action, stats in recorded_stats.items(): - output_string += (f"{os.linesep}Profile stats for: {action} rank: {local_rank} {os.linesep}{stats}") - - return output_string - - def describe(self): - """Logs a profile report after the conclusion of the training run.""" - super().describe() - if self.output_file: - self.output_file.flush() - - def __del__(self): - """Close profiler's stream.""" - if self.output_file: - self.output_file.close() + return self.stats_to_str(recorded_stats) From 2a82e05d4a999bdbfefec16a60a8b841ffaa957f Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 02:07:02 +0100 Subject: [PATCH 041/126] Fixes --- pytorch_lightning/profiler/profilers.py | 19 +++++++++---------- pytorch_lightning/trainer/trainer.py | 1 + tests/test_profiler.py | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index e7cb263b1d26e..8c573ab1c7e31 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -21,7 +21,7 @@ from abc import ABC, abstractmethod from collections import defaultdict from contextlib import contextmanager -from typing import Dict, Optional +from typing import Dict, Optional, Tuple import numpy as np @@ -68,7 +68,7 @@ def __init__( # that's why we call `on_train_start` manually self.on_train_start(local_rank=local_rank, log_dir=log_dir) - def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None): + def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: """ This function is used by the Trainer to inject local_rank with `DDP` and `TensorBoardLogger` log_dir in the profiler. @@ -141,7 +141,7 @@ def teardown(self) -> None: self.write_streams = [] self._file_prepared = False - def __del__(self): + def __del__(self) -> None: self.teardown() def start(self, action_name: str) -> None: @@ -179,7 +179,7 @@ class SimpleProfiler(BaseProfiler): the mean duration of each action and the total time spent over the entire training run. """ - def __init__(self, output_filename: Optional[str] = None, extended: bool = True): + def __init__(self, output_filename: Optional[str] = None, extended: bool = True) -> None: """ Args: output_filename: optionally save profile results to file instead of printing @@ -190,11 +190,10 @@ def __init__(self, output_filename: Optional[str] = None, extended: bool = True) If you attempt to start an action which has already started, or if you attempt to stop recording an action which was never started. """ - self.output_fname = output_filename - self.current_actions = {} + self.current_actions: Dict[str, float] = {} self.recorded_durations = defaultdict(list) self.extended = extended - super().__init__() + super().__init__(output_filename=output_filename) self.start_time = time.monotonic() def start(self, action_name: str) -> None: @@ -210,7 +209,7 @@ def stop(self, action_name: str) -> None: duration = end_time - start_time self.recorded_durations[action_name].append(duration) - def make_report(self): + def _make_report(self) -> Tuple[list, float]: total_duration = time.monotonic() - self.start_time report = [[a, d, 100. * np.sum(d) / total_duration] for a, d in self.recorded_durations.items()] report.sort(key=lambda x: x[2], reverse=True) @@ -233,7 +232,7 @@ def log_row(action, mean, num_calls, total, per): output_string += log_row("Action", "Mean duration (s)", "Num calls", "Total time (s)", "Percentage %") output_string_len = len(output_string) output_string += f"{sep}{'-' * output_string_len}" - report, total_duration = self.make_report() + report, total_duration = self._make_report() output_string += log_row("Total", "-", "_", f"{total_duration:.5}", "100 %") output_string += f"{sep}{'-' * output_string_len}" for action, durations, duration_per in report: @@ -265,7 +264,7 @@ class AdvancedProfiler(BaseProfiler): verbose and you should only use this if you want very detailed reports. """ - def __init__(self, output_filename: Optional[str] = None, line_count_restriction: float = 1.0): + def __init__(self, output_filename: Optional[str] = None, line_count_restriction: float = 1.0) -> None: """ Args: output_filename: optionally save profile results to file instead of printing diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index 53b4920bd85ef..cc95146932382 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -1077,6 +1077,7 @@ def call_teardown_hook(self, model: LightningModule) -> None: else: state = None + self.profiler.teardown() self.teardown(stage=state) model.teardown(stage=state) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 5221c0cbf7bf6..63d2334d1d068 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -316,3 +316,21 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): gpus=1, ) trainer.fit(model) + + +@pytest.mark.parametrize("cls", (SimpleProfiler, AdvancedProfiler, PyTorchProfiler)) +def test_profiler_teardown(tmpdir, cls): + """ + This test checks if profiler teardown method is called when trainer is exiting. + """ + profiler = cls(output_filename=os.path.join(tmpdir, "profiler.txt")) + + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + fast_dev_run=True, + profiler=profiler, + ) + trainer.fit(model) + + assert profiler.output_file.closed From ff125e211431d4d267e03c254a0f7c938f3c07f9 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 02:23:34 +0100 Subject: [PATCH 042/126] Unused import --- pytorch_lightning/profiler/pytorch.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 30c553ee46e57..fdd838517fd71 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -22,7 +22,6 @@ from pytorch_lightning.profiler.profilers import BaseProfiler from pytorch_lightning.utilities import rank_zero_only -from pytorch_lightning.utilities.cloud_io import get_filesystem from pytorch_lightning.utilities.distributed import rank_zero_warn from pytorch_lightning.utilities.exceptions import MisconfigurationException From 01a760e7a42ae0686a67ca80b5f06188e5f7f9f7 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 02:50:09 +0100 Subject: [PATCH 043/126] Introduce setup --- pytorch_lightning/profiler/profilers.py | 53 +++++++++---------- pytorch_lightning/profiler/pytorch.py | 12 ++--- .../trainer/connectors/profiler_connector.py | 4 -- pytorch_lightning/trainer/trainer.py | 3 ++ pytorch_lightning/trainer/training_loop.py | 3 -- tests/test_profiler.py | 2 +- 6 files changed, 33 insertions(+), 44 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 8c573ab1c7e31..6ca9b8446e08a 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -45,6 +45,9 @@ def stop(self, action_name: str) -> None: def summary(self) -> str: """Create profiler summary in text format.""" + def setup(self) -> None: + """Execute arbitrary pre-profiling set-up steps as defined by subclass.""" + def teardown(self) -> None: """Execute arbitrary post-profiling tear-down steps as defined by subclass.""" @@ -54,35 +57,13 @@ class BaseProfiler(AbstractProfiler): If you wish to write a custom profiler, you should inherit from this class. """ - def __init__( - self, - output_filename: Optional[str] = None, - local_rank: Optional[int] = None, - log_dir: Optional[str] = None - ) -> None: + def __init__(self, output_filename: Optional[str] = None) -> None: self.output_fname = output_filename self.output_file = None - self._file_prepared = False + self.local_rank = None + self.log_dir = None self.write_streams = [] - # the profiler can be used outside of lightning - # that's why we call `on_train_start` manually - self.on_train_start(local_rank=local_rank, log_dir=log_dir) - - def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: - """ - This function is used by the Trainer to inject local_rank with `DDP` - and `TensorBoardLogger` log_dir in the profiler. - """ - self.local_rank = local_rank - self.log_dir = log_dir - - def _prepare_file(self) -> None: - if not self._file_prepared: - if self.output_fname and self.output_file is None: - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") - self.write_streams = [self.output_file.write] if self.output_file else [log.info] - self._file_prepared = True + self._file_prepared = False @contextmanager def profile(self, action_name: str) -> None: @@ -115,6 +96,14 @@ def profile_iterable(self, iterable, action_name: str) -> None: self.stop(action_name) break + def _prepare_file(self) -> None: + if not self._file_prepared: + if self.output_fname and self.output_file is None: + fs = get_filesystem(self.output_fname) + self.output_file = fs.open(self.output_fname, "w") + self.write_streams = [self.output_file.write] if self.output_file else [log.info] + self._file_prepared = True + def describe(self) -> None: """Logs a profile report after the conclusion of the training run.""" self._prepare_file() @@ -124,7 +113,7 @@ def describe(self) -> None: self.output_file.flush() self.teardown() - def stats_to_str(self, stats: Dict[str, str]) -> str: + def _stats_to_str(self, stats: Dict[str, str]) -> str: output = ["Profiler Report"] for action, value in stats.items(): header = f"Profile stats for: {action}" @@ -134,6 +123,14 @@ def stats_to_str(self, stats: Dict[str, str]) -> str: output.append(value) return os.linesep.join(output) + def setup(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: + """ + This function is used by the Trainer to inject local_rank with `DDP` + and `TensorBoardLogger` log_dir in the profiler. + """ + self.local_rank = local_rank + self.log_dir = log_dir + def teardown(self) -> None: """Close profiler's stream.""" if self.output_file: @@ -299,4 +296,4 @@ def summary(self) -> str: ps = pstats.Stats(pr, stream=s).strip_dirs().sort_stats('cumulative') ps.print_stats(self.line_count_restriction) recorded_stats[action_name] = s.getvalue() - return self.stats_to_str(recorded_stats) + return self._stats_to_str(recorded_stats) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index fdd838517fd71..1f8d68b2c6375 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -60,7 +60,6 @@ def __init__( row_limit: int = 20, sort_by_key: Optional[str] = None, profiled_functions: Optional[List] = None, - local_rank: Optional[int] = None, ): """ This profiler uses PyTorch's Autograd Profiler and lets you inspect the cost of @@ -115,9 +114,6 @@ def __init__( profiled_functions: list of profiled functions which will create a context manager on. Any other will be pass through. - local_rank: When running in distributed setting, local_rank is used for each process - to write to their own file if `output_fname` is provided. - Raises: MisconfigurationException: If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``, or @@ -158,10 +154,10 @@ def __init__( self.running_stack = [] self.profiler = None - super().__init__(output_filename=output_filename, local_rank=local_rank) + super().__init__(output_filename=output_filename) - def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: - super().on_train_start(local_rank=local_rank, log_dir=log_dir) + def setup(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: + super().setup(local_rank=local_rank, log_dir=log_dir) # if the user didn't provide `path_to_export_trace`, # set it as TensorBoardLogger log_dir if exists @@ -271,4 +267,4 @@ def summary(self) -> str: table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) recorded_stats[action_name] = table - return self.stats_to_str(recorded_stats) + return self._stats_to_str(recorded_stats) diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index 98d65c1285ff7..efb58fc844696 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -53,7 +53,3 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): " `Trainer`, it can only be 'simple' or 'advanced'" ) self.trainer.profiler = profiler or PassThroughProfiler() - - def on_train_start(self, trainer): - local_rank = trainer.local_rank if trainer.world_size > 1 else None - self.trainer.profiler.on_train_start(local_rank) diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index cc95146932382..c8f3a0c435c66 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -1068,6 +1068,9 @@ def call_setup_hook(self, model: LightningModule) -> None: if not called: self.datamodule.setup(stage=state) + local_rank = self.local_rank if self.world_size > 1 else None + self.profiler.setup(local_rank=local_rank) + self.setup(model, stage=state) model.setup(stage=state) diff --git a/pytorch_lightning/trainer/training_loop.py b/pytorch_lightning/trainer/training_loop.py index 7e737c424ff26..f56fd6bd0567d 100644 --- a/pytorch_lightning/trainer/training_loop.py +++ b/pytorch_lightning/trainer/training_loop.py @@ -102,9 +102,6 @@ def on_train_start(self): # hook self.trainer.call_hook("on_train_start") - # provide rank to profiler - self.trainer.profile_connector.on_train_start(self.trainer) - def setup_fit(self, model, train_dataloader=None, val_dataloaders=None, datamodule=None): # clean hparams if hasattr(model, "hparams"): diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 63d2334d1d068..aafe45ba7d5ad 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -196,7 +196,7 @@ def test_advanced_profiler_value_errors(advanced_profiler): @pytest.fixture def pytorch_profiler(tmpdir): - profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0) + profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) return profiler From b31831e26fb59095a7b3f70251c0b9217f2c9f98 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 04:05:45 +0100 Subject: [PATCH 044/126] Profile on all ranks. Print to stdout on 0 --- pytorch_lightning/profiler/profilers.py | 9 +++++---- pytorch_lightning/profiler/pytorch.py | 10 ---------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 6ca9b8446e08a..0bcd93edbefe2 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -96,12 +96,13 @@ def profile_iterable(self, iterable, action_name: str) -> None: self.stop(action_name) break + def _rank_zero_info(self, *args, **kwargs) -> None: + if self.local_rank in (None, 0): + log.info(*args, **kwargs) + def _prepare_file(self) -> None: if not self._file_prepared: - if self.output_fname and self.output_file is None: - fs = get_filesystem(self.output_fname) - self.output_file = fs.open(self.output_fname, "w") - self.write_streams = [self.output_file.write] if self.output_file else [log.info] + self.write_streams = [self.output_file.write] if self.output_file else [self._rank_zero_info] self._file_prepared = True def describe(self) -> None: diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 1f8d68b2c6375..11ac03b914620 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -164,16 +164,6 @@ def setup(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) if self.path_to_export_trace is None: self.path_to_export_trace = log_dir - # when logging to `log.info`, only perform profiling on rank 0 - if local_rank is not None and local_rank > 0 and self.output_fname is None: - self._rank_zero_only_wrap() - - def _rank_zero_only_wrap(self) -> None: - self.start = rank_zero_only(self.start) - self.stop = rank_zero_only(self.stop) - self.summary = rank_zero_only(self.summary) - self.describe = rank_zero_only(self.describe) - def start(self, action_name: str) -> None: if action_name not in self.profiled_functions: return From f8a87723dfee1b4079888b61112b1d9f19e65304 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 04:27:18 +0100 Subject: [PATCH 045/126] Introduce dirpath + filename --- pytorch_lightning/profiler/profilers.py | 63 ++++++++++++++++++++----- pytorch_lightning/profiler/pytorch.py | 18 +++---- pytorch_lightning/trainer/trainer.py | 2 +- tests/deprecated_api/test_remove_1-5.py | 10 ++++ tests/test_profiler.py | 53 +++++++-------------- 5 files changed, 91 insertions(+), 55 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 0bcd93edbefe2..73e83ff32fdaa 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -21,10 +21,12 @@ from abc import ABC, abstractmethod from collections import defaultdict from contextlib import contextmanager -from typing import Dict, Optional, Tuple +from pathlib import Path +from typing import Dict, Optional, Tuple, Union import numpy as np +from pytorch_lightning.utilities import rank_zero_warn from pytorch_lightning.utilities.cloud_io import get_filesystem log = logging.getLogger(__name__) @@ -57,8 +59,23 @@ class BaseProfiler(AbstractProfiler): If you wish to write a custom profiler, you should inherit from this class. """ - def __init__(self, output_filename: Optional[str] = None) -> None: - self.output_fname = output_filename + def __init__( + self, + dirpath: Optional[Union[str, Path]] = None, + filename: Optional[str] = None, + output_filename: Optional[str] = None, + ) -> None: + self.dirpath = dirpath + self.filename = filename + if output_filename is not None: + rank_zero_warn( + "`Profiler` signature has changed in v1.3. The `output_filename` parameter has been removed in" + " favor of `dirpath` and `filename`. Support for the old signature will be removed in v1.5", + DeprecationWarning + ) + filepath = Path(output_filename) + self.dirpath = filepath.parent + self.filename = filepath.name self.output_file = None self.local_rank = None self.log_dir = None @@ -102,6 +119,11 @@ def _rank_zero_info(self, *args, **kwargs) -> None: def _prepare_file(self) -> None: if not self._file_prepared: + if self.filename and self.output_file is None: + dirpath = self.dirpath or self.log_dir + filepath = os.path.join(dirpath, self.filename) + fs = get_filesystem(filepath) + self.output_file = fs.open(filepath, "a") self.write_streams = [self.output_file.write] if self.output_file else [self._rank_zero_info] self._file_prepared = True @@ -177,11 +199,20 @@ class SimpleProfiler(BaseProfiler): the mean duration of each action and the total time spent over the entire training run. """ - def __init__(self, output_filename: Optional[str] = None, extended: bool = True) -> None: + def __init__( + self, + dirpath: Optional[Union[str, Path]] = None, + filename: Optional[str] = None, + extended: bool = True, + output_filename: Optional[str] = None, + ) -> None: """ Args: - output_filename: optionally save profile results to file instead of printing - to std out when training is finished. + dirpath: Directory path for the ``filename``. If ``dirpath`` is ``None`` but ``filename`` is present, the + ``trainer.log_dir`` (from :class:`~pytorch_lightning.loggers.tensorboard.TensorBoardLogger`) + will be used. + + filename: If present, filename where the profiler results will be saved instead of printing to stdout. Raises: ValueError: @@ -191,7 +222,7 @@ def __init__(self, output_filename: Optional[str] = None, extended: bool = True) self.current_actions: Dict[str, float] = {} self.recorded_durations = defaultdict(list) self.extended = extended - super().__init__(output_filename=output_filename) + super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) self.start_time = time.monotonic() def start(self, action_name: str) -> None: @@ -262,11 +293,21 @@ class AdvancedProfiler(BaseProfiler): verbose and you should only use this if you want very detailed reports. """ - def __init__(self, output_filename: Optional[str] = None, line_count_restriction: float = 1.0) -> None: + def __init__( + self, + dirpath: Optional[Union[str, Path]] = None, + filename: Optional[str] = None, + line_count_restriction: float = 1.0, + output_filename: Optional[str] = None, + ) -> None: """ Args: - output_filename: optionally save profile results to file instead of printing - to std out when training is finished. + dirpath: Directory path for the ``filename``. If ``dirpath`` is ``None`` but ``filename`` is present, the + ``trainer.log_dir`` (from :class:`~pytorch_lightning.loggers.tensorboard.TensorBoardLogger`) + will be used. + + filename: If present, filename where the profiler results will be saved instead of printing to stdout. + line_count_restriction: this can be used to limit the number of functions reported for each action. either an integer (to select a count of lines), or a decimal fraction between 0.0 and 1.0 inclusive (to select a percentage of lines) @@ -275,7 +316,7 @@ def __init__(self, output_filename: Optional[str] = None, line_count_restriction ValueError: If you attempt to stop recording an action which was never started. """ - super().__init__(output_filename=output_filename) + super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) self.profiled_actions = {} self.line_count_restriction = line_count_restriction diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 11ac03b914620..8357d110663b2 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -16,12 +16,12 @@ import inspect import logging import os -from typing import List, Optional +from pathlib import Path +from typing import List, Optional, Union import torch from pytorch_lightning.profiler.profilers import BaseProfiler -from pytorch_lightning.utilities import rank_zero_only from pytorch_lightning.utilities.distributed import rank_zero_warn from pytorch_lightning.utilities.exceptions import MisconfigurationException @@ -45,7 +45,8 @@ class PyTorchProfiler(BaseProfiler): def __init__( self, - output_filename: Optional[str] = None, + dirpath: Optional[Union[str, Path]] = None, + filename: Optional[str] = None, enabled: bool = True, use_cuda: bool = False, record_shapes: bool = False, @@ -60,17 +61,18 @@ def __init__( row_limit: int = 20, sort_by_key: Optional[str] = None, profiled_functions: Optional[List] = None, + output_filename: Optional[str] = None, ): """ This profiler uses PyTorch's Autograd Profiler and lets you inspect the cost of different operators inside your model - both on the CPU and GPU Args: + dirpath: Directory path for the ``filename``. If ``dirpath`` is ``None`` but ``filename`` is present, the + ``trainer.log_dir`` (from :class:`~pytorch_lightning.loggers.tensorboard.TensorBoardLogger`) + will be used. - output_filename: optionally save profile results to file instead of printing - to std out when training is finished. When using ``ddp``, - each rank will stream the profiled operation to their own file - with the extension ``_{rank}.txt`` + filename: If present, filename where the profiler results will be saved instead of printing to stdout. enabled: Setting this to False makes this context manager a no-op. @@ -154,7 +156,7 @@ def __init__( self.running_stack = [] self.profiler = None - super().__init__(output_filename=output_filename) + super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) def setup(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: super().setup(local_rank=local_rank, log_dir=log_dir) diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index c8f3a0c435c66..580a9de22fd53 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -1069,7 +1069,7 @@ def call_setup_hook(self, model: LightningModule) -> None: self.datamodule.setup(stage=state) local_rank = self.local_rank if self.world_size > 1 else None - self.profiler.setup(local_rank=local_rank) + self.profiler.setup(local_rank=local_rank, log_dir=self.log_dir) self.setup(model, stage=state) model.setup(stage=state) diff --git a/tests/deprecated_api/test_remove_1-5.py b/tests/deprecated_api/test_remove_1-5.py index f449a37e33c25..6f2c65c7a1171 100644 --- a/tests/deprecated_api/test_remove_1-5.py +++ b/tests/deprecated_api/test_remove_1-5.py @@ -20,6 +20,7 @@ from pytorch_lightning import Callback, Trainer from pytorch_lightning.callbacks import ModelCheckpoint from pytorch_lightning.loggers import WandbLogger +from pytorch_lightning.profiler import BaseProfiler, SimpleProfiler, AdvancedProfiler, PyTorchProfiler from pytorch_lightning.trainer.callback_hook import warning_cache as callback_warning_cache from tests.deprecated_api import no_deprecated_call from tests.helpers import BoringModel @@ -203,3 +204,12 @@ def on_test_epoch_end(self, outputs): model = NewSignatureModel() with no_deprecated_call(match="`ModelHooks.on_test_epoch_end` signature has changed in v1.3."): trainer.test(model) + + +@pytest.mark.parametrize("cls", (BaseProfiler, SimpleProfiler, AdvancedProfiler, PyTorchProfiler)) +def test_v1_5_0_profiler_output_filename(tmpdir, cls): + filepath = str(tmpdir / "test") + with pytest.deprecated_call(match="`output_filename` parameter has been removed"): + profiler = cls(output_filename=filepath) + assert profiler.dirpath == tmpdir + assert profiler.filename == "test" diff --git a/tests/test_profiler.py b/tests/test_profiler.py index aafe45ba7d5ad..e16ad96992fda 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -12,10 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. import logging -import os import time from distutils.version import LooseVersion -from pathlib import Path import numpy as np import pytest @@ -45,8 +43,7 @@ def _sleep_generator(durations): @pytest.fixture def simple_profiler(): - profiler = SimpleProfiler() - return profiler + return SimpleProfiler() @pytest.mark.parametrize(["action", "expected"], [ @@ -117,8 +114,7 @@ def test_simple_profiler_value_errors(simple_profiler): @pytest.fixture def advanced_profiler(tmpdir): - profiler = AdvancedProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) - return profiler + return AdvancedProfiler(dirpath=tmpdir, filename="profiler.txt") @pytest.mark.parametrize(["action", "expected"], [ @@ -179,7 +175,8 @@ def test_advanced_profiler_describe(tmpdir, advanced_profiler): pass # log to stdout and print to file advanced_profiler.describe() - data = Path(advanced_profiler.output_fname).read_text() + path = advanced_profiler.dirpath / advanced_profiler.filename + data = path.read_text("utf-8") assert len(data) > 0 @@ -196,8 +193,7 @@ def test_advanced_profiler_value_errors(advanced_profiler): @pytest.fixture def pytorch_profiler(tmpdir): - profiler = PyTorchProfiler(output_filename=os.path.join(tmpdir, "profiler.txt")) - return profiler + return PyTorchProfiler(dirpath=tmpdir, filename="profiler.txt") def test_pytorch_profiler_describe(pytorch_profiler): @@ -207,7 +203,8 @@ def test_pytorch_profiler_describe(pytorch_profiler): # log to stdout and print to file pytorch_profiler.describe() - data = Path(pytorch_profiler.output_fname).read_text() + path = pytorch_profiler.dirpath / pytorch_profiler.filename + data = path.read_text("utf-8") assert len(data) > 0 @@ -223,46 +220,32 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): @RunIf(min_gpus=2, special=True) -@pytest.mark.parametrize("use_output_filename", [False, True]) -def test_pytorch_profiler_trainer_ddp(tmpdir, use_output_filename): +def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the training and default step are properly recorded. """ - - if use_output_filename: - output_filename = os.path.join(tmpdir, "profiler.txt") - else: - output_filename = None - - profiler = PyTorchProfiler(output_filename=output_filename) - model = BoringModel() trainer = Trainer( + default_root_dir=tmpdir, fast_dev_run=True, - profiler=profiler, + profiler=pytorch_profiler, accelerator="ddp", gpus=2, ) trainer.fit(model) - enabled = use_output_filename or not use_output_filename and profiler.local_rank == 0 - - if enabled: - assert len(profiler.summary()) > 0 - assert set(profiler.profiled_actions.keys()) == {'training_step_and_backward', 'validation_step'} - else: - assert profiler.summary() is None - assert set(profiler.profiled_actions.keys()) == set() + assert len(pytorch_profiler.summary()) > 0 + assert set(pytorch_profiler.profiled_actions.keys()) == {'training_step_and_backward', 'validation_step'} - if use_output_filename: - profiler.describe() - data = Path(profiler.output_fname).read_text() - assert len(data) > 0 + pytorch_profiler.describe() + path = pytorch_profiler.dirpath / pytorch_profiler.filename + data = path.read_text("utf-8") + assert len(data) > 0 def test_pytorch_profiler_nested(tmpdir): """Ensure that the profiler handles nested context""" pytorch_profiler = PyTorchProfiler( - profiled_functions=["a", "b", "c"], use_cuda=False, output_filename=os.path.join(tmpdir, "profiler.txt") + profiled_functions=["a", "b", "c"], use_cuda=False, dirpath=tmpdir, filename="profiler.txt" ) with pytorch_profiler.profile("a"): @@ -323,7 +306,7 @@ def test_profiler_teardown(tmpdir, cls): """ This test checks if profiler teardown method is called when trainer is exiting. """ - profiler = cls(output_filename=os.path.join(tmpdir, "profiler.txt")) + profiler = cls(dirpath=tmpdir, filename="profiler.txt") model = BoringModel() trainer = Trainer( From aa4b7dd6026a5ec42f12c627719c5f8c3c99e19d Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 04:34:23 +0100 Subject: [PATCH 046/126] CHANGELOG --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6004a28dd0829..df15771d5aa8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Added `Trainer.predict` config validation ([#6543](https://github.com/PyTorchLightning/pytorch-lightning/pull/6543)) +- Added `AbstractProfiler` interface ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) + + +- Added `setup` method to `BaseProfiler` to enable subclasses defining pre-profiling steps ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) + + - Added `outputs` parameter to callback's `on_validation_epoch_end` & `on_test_epoch_end` hooks ([#6120](https://github.com/PyTorchLightning/pytorch-lightning/pull/6120)) @@ -68,6 +74,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Deprecated `trainer.running_sanity_check` in favor of `trainer.sanity_checking` ([#4945](https://github.com/PyTorchLightning/pytorch-lightning/pull/4945)) +- Deprecated `Profiler(output_filename)` in favor of `dirpath` and `filename` ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) + + - Deprecated metrics in favor of `torchmetrics` ([#6505](https://github.com/PyTorchLightning/pytorch-lightning/pull/6505), [#6530](https://github.com/PyTorchLightning/pytorch-lightning/pull/6530), From 8e3034e8f09e7296f417a118751015c8a3f2d1de Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 04:47:56 +0100 Subject: [PATCH 047/126] Add tests. Address comments --- pytorch_lightning/profiler/profilers.py | 5 ++--- tests/test_profiler.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 73e83ff32fdaa..9521ac439fbd6 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -148,8 +148,7 @@ def _stats_to_str(self, stats: Dict[str, str]) -> str: def setup(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: """ - This function is used by the Trainer to inject local_rank with `DDP` - and `TensorBoardLogger` log_dir in the profiler. + This function is used by the Trainer to inject the local_rank on distributed and `TensorBoardLogger.log_dir`. """ self.local_rank = local_rank self.log_dir = log_dir @@ -219,10 +218,10 @@ def __init__( If you attempt to start an action which has already started, or if you attempt to stop recording an action which was never started. """ + super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) self.current_actions: Dict[str, float] = {} self.recorded_durations = defaultdict(list) self.extended = extended - super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) self.start_time = time.monotonic() def start(self, action_name: str) -> None: diff --git a/tests/test_profiler.py b/tests/test_profiler.py index e16ad96992fda..28674c2769799 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -112,6 +112,25 @@ def test_simple_profiler_value_errors(simple_profiler): simple_profiler.stop(action) +def test_simple_profiler_log_dir(tmpdir): + """Ensure the profiler dirpath defaults to `trainer.log_dir` when not present""" + profiler = SimpleProfiler(filename="profiler.txt") + assert profiler.log_dir is None + + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + max_epochs=1, + profiler=profiler, + ) + trainer.fit(model) + + expected = tmpdir / "lightning_logs" / "version_0" + assert trainer.log_dir == expected + assert profiler.log_dir == trainer.log_dir + assert expected.join("profiler.txt").exists() + + @pytest.fixture def advanced_profiler(tmpdir): return AdvancedProfiler(dirpath=tmpdir, filename="profiler.txt") From e4e0dd6278a6d0a97c6286d04b7c24bcf0947f6f Mon Sep 17 00:00:00 2001 From: tchaton Date: Mon, 22 Mar 2021 10:19:42 +0000 Subject: [PATCH 048/126] add `on_run_stage_setup` --- pytorch_lightning/plugins/training_type/horovod.py | 7 +++---- .../plugins/training_type/training_type_plugin.py | 6 +++--- pytorch_lightning/trainer/trainer.py | 8 ++++++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/pytorch_lightning/plugins/training_type/horovod.py b/pytorch_lightning/plugins/training_type/horovod.py index 9f1bafe309f89..06ab7500dacc8 100644 --- a/pytorch_lightning/plugins/training_type/horovod.py +++ b/pytorch_lightning/plugins/training_type/horovod.py @@ -96,22 +96,21 @@ def start_training(self, trainer): stack.enter_context(optimizer.skip_synchronize()) # set up training routine - self._results = trainer.run_train() + self._results = trainer.run_stage() # Make sure all workers have finished training before returning to the user hvd.join() def start_evaluating(self, trainer): with ExitStack(): - self._results = trainer.run_evaluate() + self._results = trainer.run_stage() # Make sure all workers have finished training before returning to the user hvd.join() def start_predicting(self, trainer): with ExitStack(): - # set up training routine - self._results = trainer.run_predict() + self._results = trainer.run_stage() # Make sure all workers have finished training before returning to the user hvd.join() diff --git a/pytorch_lightning/plugins/training_type/training_type_plugin.py b/pytorch_lightning/plugins/training_type/training_type_plugin.py index 6a87792c7bd03..a00eefd77d129 100644 --- a/pytorch_lightning/plugins/training_type/training_type_plugin.py +++ b/pytorch_lightning/plugins/training_type/training_type_plugin.py @@ -132,15 +132,15 @@ def rpc_enabled(self) -> bool: def start_training(self, trainer: 'Trainer') -> None: # double dispatch to initiate the training loop - self._results = trainer.run_train() + self._results = trainer.run_stage() def start_evaluating(self, trainer: 'Trainer') -> None: # double dispatch to initiate the test loop - self._results = trainer.run_evaluate() + self._results = trainer.run_stage() def start_predicting(self, trainer: 'Trainer') -> None: # double dispatch to initiate the predicting loop - self._results = trainer.run_predict() + self._results = trainer.run_stage() def training_step(self, *args, **kwargs): return self.lightning_module.training_step(*args, **kwargs) diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index 580a9de22fd53..dc346d441dc39 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -516,8 +516,16 @@ def dispatch(self): else: self.accelerator.start_training(self) + def on_run_stage_setup(self): + # setup profiler with the rank info and log_dir + local_rank = self.local_rank if self.world_size > 1 else None + self.profiler.setup(local_rank=local_rank, log_dir=self.log_dir) + def run_stage(self): results = None + + self.on_run_stage_setup() + if self.evaluating: results = self.run_evaluate() elif self.predicting: From d0fdbb9ddfdfe4b169479247505131acfdaf832b Mon Sep 17 00:00:00 2001 From: tchaton Date: Mon, 22 Mar 2021 10:31:38 +0000 Subject: [PATCH 049/126] add on_run_stage_setup function --- pytorch_lightning/trainer/trainer.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index dc346d441dc39..a91454d627312 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -517,9 +517,7 @@ def dispatch(self): self.accelerator.start_training(self) def on_run_stage_setup(self): - # setup profiler with the rank info and log_dir - local_rank = self.local_rank if self.world_size > 1 else None - self.profiler.setup(local_rank=local_rank, log_dir=self.log_dir) + self.profiler.setup(local_rank=self.local_rank if self.world_size > 1 else None, log_dir=self.log_dir) def run_stage(self): results = None From 1a16bb3e837944fafc34bdc99ba373f76e45a93e Mon Sep 17 00:00:00 2001 From: tchaton Date: Mon, 22 Mar 2021 10:33:53 +0000 Subject: [PATCH 050/126] update --- pytorch_lightning/trainer/trainer.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index a91454d627312..b4d7fd6febc06 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -1074,9 +1074,6 @@ def call_setup_hook(self, model: LightningModule) -> None: if not called: self.datamodule.setup(stage=state) - local_rank = self.local_rank if self.world_size > 1 else None - self.profiler.setup(local_rank=local_rank, log_dir=self.log_dir) - self.setup(model, stage=state) model.setup(stage=state) From 52fa69b182c2e16989d5d5a3951b066a0a67b5b3 Mon Sep 17 00:00:00 2001 From: tchaton Date: Mon, 22 Mar 2021 11:06:14 +0000 Subject: [PATCH 051/126] add test for RegisterRecordFunction --- pytorch_lightning/profiler/pytorch.py | 41 +++++++++++++++------------ tests/test_profiler.py | 38 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 18 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 874a4e607c784..a5bbfffb4e6be 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -19,6 +19,7 @@ from typing import Any, Dict, List, Optional, Type, Union import torch +from torch import nn, Tensor from torch.autograd.profiler import EventList, record_function from pytorch_lightning.profiler.profilers import BaseProfiler @@ -48,33 +49,31 @@ class RegisterRecordFunction: out = model(batch) """ - def __init__(self, model): + def __init__(self, model: nn.Module): self._model = model self._records = {} self.handles = {} - def _start_recording_forward(self, module, input, module_name: str = None, is_built_in: bool = None): - if module_name is not None: - record_name = module_name if is_built_in else f"{type(module)}: {module_name}" - self._records[record_name] = record_function(record_name).__enter__() + def _start_recording_forward(self, module: nn.Module, input: Tensor, record_name: str): + record = record_function(record_name) + record.__enter__() + self._records[record_name] = record return input - def _stop_recording_forward(self, module, input, result, module_name: str = None, is_built_in: bool = None): - if module_name is not None: - record_name = module_name if is_built_in else f"{type(module)}: {module_name}" - self._records[record_name].__exit__(None, None, None) - return result + def _stop_recording_forward(self, module: nn.Module, input: Tensor, output: Tensor, record_name: str): + self._records[record_name].__exit__(None, None, None) + return output def __enter__(self): - built_in_modules = dir(torch.nn) for module_name, module in self._model.named_modules(): if module_name != '': - is_built_in = module in built_in_modules + full_name = type(module).__module__ + '.' + type(module).__name__ + record_name = f"{full_name}: {module_name}" pre_forward_handle = module.register_forward_pre_hook( - partial(self._start_recording_forward, module_name=module_name, is_built_in=is_built_in) + partial(self._start_recording_forward, record_name=record_name) ) post_forward_handle = module.register_forward_hook( - partial(self._stop_recording_forward, module_name=module_name, is_built_in=is_built_in) + partial(self._stop_recording_forward, record_name=record_name) ) self.handles[module_name] = [pre_forward_handle, post_forward_handle] @@ -112,9 +111,9 @@ def __init__( path_to_export_trace: Optional[str] = None, row_limit: int = 20, sort_by_key: Optional[str] = None, - record_functions: List[str] = [], + record_functions: List[str] = None, local_rank: Optional[int] = None, - profiled_functions: List[str] = [], + profiled_functions: List[str] = None, record_module_names: bool = True, **profiler_kwargs: Any, ) -> None: @@ -146,7 +145,7 @@ def __init__( path_to_export_trace: Directory path to export ``.json`` traces when using ``export_to_chrome=True``. By default, it will be save where the file being is being run. - row_limit: Limit the number of rows in a table, ``0`` is a special value that + row_limit: Limit the number of rows in a table, ``-1`` is a special value that removes the limit completely. sort_by_key: Attribute used to sort entries. By default @@ -178,7 +177,7 @@ def __init__( record_functions = self.__deprecation_check(profiled_functions, record_functions) self.output_fname = output_filename - self.record_functions = record_functions + list(self.RECORD_FUNCTIONS) + self.record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) self.sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" self.group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) self.row_limit = row_limit @@ -211,6 +210,9 @@ def __init__( super().__init__(output_filename=output_filename, local_rank=local_rank) def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: + if record_functions is None: + record_functions = [] + if profiled_functions is not None: rank_zero_warn( "`PyTorchProfiler.profiled_functions` has been renamed to" @@ -223,6 +225,9 @@ def __deprecation_check(self, profiled_functions: List[str] = [], record_functio "You set `PytorchProfiler.profiled_functions` and `PyTorchProfiler.record_functions`." " Please use only the later." ) + if record_functions is None: + record_functions = [] + return record_functions def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 7a95bb6bbb75a..2fcf825292e66 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -25,6 +25,7 @@ from pytorch_lightning import Trainer from pytorch_lightning.loggers import TensorBoardLogger from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler +from pytorch_lightning.profiler.pytorch import RegisterRecordFunction from pytorch_lightning.utilities.exceptions import MisconfigurationException from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -354,3 +355,40 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): gpus=1, ) trainer.fit(model) + + +@RunIf(min_torch="1.5.0") +def test_register_record_function(tmpdir): + + use_cuda = torch.cuda.is_available() + + pytorch_profiler = PyTorchProfiler( + export_to_chrome=False, + record_functions=["a"], + use_cuda=use_cuda, + output_filename=os.path.join(tmpdir, "profiler.txt") + ) + + class TestModel(BoringModel): + + def __init__(self): + super().__init__() + self.layer = torch.nn.Sequential(torch.nn.Linear(32, 32), torch.nn.ReLU(), torch.nn.Linear(32, 2)) + + model = TestModel() + input = torch.rand((1, 32)) + + if use_cuda: + model = model.cuda() + input = input.cuda() + + with pytorch_profiler.profile("a"): + with RegisterRecordFunction(model): + model(input) + + pytorch_profiler.describe() + event_names = [e.name for e in pytorch_profiler.function_events] + assert 'torch.nn.modules.container.Sequential: layer' in event_names + assert 'torch.nn.modules.linear.Linear: layer.0' in event_names + assert 'torch.nn.modules.activation.ReLU: layer.1' in event_names + assert 'torch.nn.modules.linear.Linear: layer.2' in event_names From 63b6988f2fc495c2c17fa2fc3305aabb380c6404 Mon Sep 17 00:00:00 2001 From: tchaton Date: Mon, 22 Mar 2021 11:10:57 +0000 Subject: [PATCH 052/126] update lightnng flow direction --- 0_trace.json | 1 + pytorch_lightning/trainer/trainer.py | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 0_trace.json diff --git a/0_trace.json b/0_trace.json new file mode 100644 index 0000000000000..2b9487adf83a1 --- /dev/null +++ b/0_trace.json @@ -0,0 +1 @@ +[{"name": "aten::empty", "ph": "X", "ts": 434.706, "dur": 4.123999999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::random_", "ph": "X", "ts": 460.465, "dur": 8.160000000000025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::is_floating_point", "ph": "X", "ts": 517.229, "dur": 0.5319999999999254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::item", "ph": "X", "ts": 521.148, "dur": 4.944999999999936, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_local_scalar_dense", "ph": "X", "ts": 523.151, "dur": 2.3920000000000528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 550.11, "dur": 6.506999999999948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 552.022, "dur": 1.8149999999999409, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 555.346, "dur": 0.8869999999999436, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 570.759, "dur": 90.41200000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 572.027, "dur": 1.2229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 590.516, "dur": 7.359000000000037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 593.307, "dur": 1.2479999999999336, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 611.293, "dur": 18.946000000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 614.671, "dur": 2.647999999999911, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 615.849, "dur": 0.8669999999999618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 618.48, "dur": 10.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 620.28, "dur": 7.537000000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 621.824, "dur": 0.7570000000000618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 624.749, "dur": 1.7419999999999618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 673.509, "dur": 3.905999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 674.565, "dur": 1.2449999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 676.664, "dur": 0.39999999999997726, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 682.945, "dur": 136.89499999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 683.766, "dur": 0.9970000000000709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 719.439, "dur": 0.6900000000000546, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 756.527, "dur": 31.145999999999958, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 758.133, "dur": 7.706999999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 760.317, "dur": 3.59699999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 761.541, "dur": 1.6059999999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 767.014, "dur": 19.521999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 769.084, "dur": 0.7690000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 771.655, "dur": 2.4840000000000373, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 773.009, "dur": 0.5760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 776.425, "dur": 4.753000000000043, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 828.453, "dur": 4.322999999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 829.445, "dur": 1.54099999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 831.966, "dur": 0.42200000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 838.564, "dur": 41.33800000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 839.371, "dur": 0.9470000000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 849.209, "dur": 4.100000000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 850.949, "dur": 0.6450000000000955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 860.703, "dur": 12.302999999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 862.545, "dur": 1.7549999999999955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 863.391, "dur": 0.5710000000000264, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 865.157, "dur": 6.403999999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 866.217, "dur": 4.831000000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 867.16, "dur": 0.5800000000000409, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 869.225, "dur": 0.8859999999999673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 889.918, "dur": 3.3379999999999654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 890.823, "dur": 0.9640000000000555, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 892.58, "dur": 0.34199999999998454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 897.93, "dur": 94.33900000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 898.695, "dur": 0.9339999999999691, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 923.365, "dur": 0.45899999999994634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 947.06, "dur": 21.027000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 947.97, "dur": 5.706000000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 949.398, "dur": 2.715000000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 950.388, "dur": 1.0149999999999864, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 954.471, "dur": 12.812000000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 955.993, "dur": 0.6559999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 957.74, "dur": 2.1480000000000246, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 958.84, "dur": 0.5109999999999673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 961.648, "dur": 3.4529999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1000.167, "dur": 3.5639999999999645, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1001.099, "dur": 1.1089999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1002.998, "dur": 0.39599999999995816, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1009.29, "dur": 37.63800000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1010.081, "dur": 0.8550000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1019.094, "dur": 3.8279999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1020.609, "dur": 0.6329999999999245, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1029.302, "dur": 11.473000000000184, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1030.923, "dur": 1.6800000000000637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1031.694, "dur": 0.5730000000000928, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1033.286, "dur": 6.272999999999911, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1034.109, "dur": 4.879000000000133, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1035.085, "dur": 0.5909999999998945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1037.16, "dur": 0.9789999999998145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1056.355, "dur": 3.286000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1057.224, "dur": 1.0230000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1059.027, "dur": 0.2899999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1064.272, "dur": 89.09699999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1065.047, "dur": 1.0619999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1087.371, "dur": 0.4199999999998454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1109.42, "dur": 20.649999999999864, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1110.287, "dur": 5.696999999999889, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1111.71, "dur": 2.7180000000000746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1112.753, "dur": 0.9960000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1116.841, "dur": 12.46400000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1118.372, "dur": 0.6829999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1120.036, "dur": 2.2329999999999472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1121.182, "dur": 0.58400000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1124.03, "dur": 3.07100000000014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1161.195, "dur": 3.6690000000000964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1162.097, "dur": 1.2419999999999618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1164.178, "dur": 0.36799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1170.367, "dur": 37.63300000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1171.146, "dur": 1.0389999999999873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1180.298, "dur": 3.80600000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1181.921, "dur": 0.6009999999998854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1190.349, "dur": 11.489000000000033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1192.141, "dur": 1.6189999999999145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1192.914, "dur": 0.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1194.557, "dur": 6.007000000000062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1195.411, "dur": 4.643000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1196.459, "dur": 0.6029999999998381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1198.432, "dur": 0.7950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1217.402, "dur": 3.449000000000069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1218.316, "dur": 1.0480000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1220.182, "dur": 0.33999999999991815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1225.479, "dur": 86.24800000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1226.219, "dur": 0.9259999999999309, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1247.952, "dur": 0.4190000000000964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1268.589, "dur": 20.205000000000155, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1269.54, "dur": 5.414999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1270.949, "dur": 2.550999999999931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1271.909, "dur": 0.9420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1275.697, "dur": 12.211000000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1277.15, "dur": 0.7719999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1278.903, "dur": 2.1089999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1279.988, "dur": 0.5190000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1282.728, "dur": 3.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1319.262, "dur": 3.6390000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1320.131, "dur": 1.2089999999998327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1322.158, "dur": 0.40300000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1328.439, "dur": 36.46799999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1329.227, "dur": 0.9669999999998709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1338.032, "dur": 3.8150000000000546, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1339.595, "dur": 0.6349999999999909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1347.831, "dur": 10.961000000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1349.438, "dur": 1.5480000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1350.165, "dur": 0.4819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1351.73, "dur": 5.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1352.612, "dur": 4.435999999999922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1353.569, "dur": 0.5699999999999363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1355.509, "dur": 0.7400000000000091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1374.249, "dur": 3.5260000000000673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1375.186, "dur": 1.0140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1377.103, "dur": 0.3389999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1382.386, "dur": 85.54500000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1383.139, "dur": 0.9110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1404.399, "dur": 0.42000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1425.156, "dur": 20.100000000000136, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1426.058, "dur": 5.403999999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1427.504, "dur": 2.5440000000000964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1428.487, "dur": 0.9489999999998417, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1432.219, "dur": 12.21699999999987, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1433.673, "dur": 0.7080000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1435.322, "dur": 2.145000000000209, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1436.411, "dur": 0.47199999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1439.186, "dur": 3.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1500.831, "dur": 24.46400000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1503.028, "dur": 2.93100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1524.327, "dur": 0.5489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1534.533, "dur": 44.080000000000155, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1535.513, "dur": 1.4570000000001073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1548.337, "dur": 4.338999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1550.017, "dur": 0.68100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1560.411, "dur": 11.02800000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1562.022, "dur": 1.6490000000001146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1562.736, "dur": 0.5769999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1564.364, "dur": 5.724999999999909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1565.158, "dur": 4.463000000000193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1566.117, "dur": 0.5080000000000382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1567.953, "dur": 0.8730000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1588.816, "dur": 2.951999999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1589.639, "dur": 0.8200000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1591.213, "dur": 0.29099999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1596.266, "dur": 87.36400000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1596.918, "dur": 0.7820000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1619.789, "dur": 0.36599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1641.765, "dur": 19.10499999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1642.588, "dur": 5.013000000000147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1643.955, "dur": 2.372000000000071, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1644.788, "dur": 0.9680000000000746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1648.332, "dur": 11.74499999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1649.628, "dur": 0.5900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1651.148, "dur": 1.6770000000001346, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1652.052, "dur": 0.39000000000010004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1654.28, "dur": 3.3980000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1690.671, "dur": 3.1849999999999454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1691.453, "dur": 1.1000000000001364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1693.255, "dur": 0.32799999999997453, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1698.484, "dur": 31.961000000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1699.129, "dur": 0.8820000000000618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1707.192, "dur": 3.189000000000078, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1708.47, "dur": 0.51299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1715.897, "dur": 9.298000000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1717.257, "dur": 1.3919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1717.936, "dur": 0.4450000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1719.241, "dur": 4.9500000000000455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1719.91, "dur": 3.870999999999867, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1720.757, "dur": 0.5670000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1722.455, "dur": 0.6430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1738.627, "dur": 2.9270000000001346, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1739.383, "dur": 0.9099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1741.009, "dur": 0.29099999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1745.566, "dur": 75.23700000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1746.146, "dur": 0.7080000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1766.24, "dur": 0.3710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1784.935, "dur": 16.466000000000122, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1785.614, "dur": 4.2970000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1786.758, "dur": 2.0190000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1787.536, "dur": 0.7300000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1790.594, "dur": 10.121999999999844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1791.692, "dur": 0.5909999999998945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1793.016, "dur": 1.6449999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1793.872, "dur": 0.4179999999998927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1796.094, "dur": 2.716999999999871, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1827.141, "dur": 3.1340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1827.874, "dur": 1.1009999999998854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1829.695, "dur": 0.3170000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1834.804, "dur": 30.740999999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1835.421, "dur": 0.7290000000000418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1842.935, "dur": 3.171000000000049, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1844.225, "dur": 0.49700000000007094, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1851.386, "dur": 9.058999999999969, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1852.72, "dur": 1.3079999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1853.334, "dur": 0.4379999999998745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1854.614, "dur": 4.867999999999938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1855.307, "dur": 3.785000000000082, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1856.191, "dur": 0.4839999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1857.769, "dur": 0.6459999999999582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1873.163, "dur": 2.747000000000071, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1873.897, "dur": 0.8079999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1875.354, "dur": 0.3129999999998745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1879.652, "dur": 70.70799999999986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1880.256, "dur": 0.7329999999999472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1898.54, "dur": 0.38400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1915.907, "dur": 16.055000000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1916.625, "dur": 4.066000000000031, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1917.65, "dur": 1.9449999999999363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1918.391, "dur": 0.7139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1921.327, "dur": 9.914999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1922.497, "dur": 0.5729999999998654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1923.766, "dur": 1.6649999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1924.685, "dur": 0.3630000000000564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1926.799, "dur": 2.6569999999999254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1956.486, "dur": 2.974999999999909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1957.205, "dur": 0.9900000000000091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1958.87, "dur": 0.3380000000001928, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1963.97, "dur": 39.884000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1964.594, "dur": 8.827999999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1980.705, "dur": 3.2480000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1982.03, "dur": 0.5119999999999436, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1989.16, "dur": 9.352999999999838, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1990.509, "dur": 1.36200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1991.165, "dur": 0.4519999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1992.478, "dur": 4.9529999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1993.182, "dur": 3.8379999999999654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1994.0, "dur": 0.49299999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1995.689, "dur": 0.696999999999889, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2011.54, "dur": 26.585000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2012.348, "dur": 0.7390000000000327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2037.463, "dur": 0.3569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2043.003, "dur": 91.11300000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2043.78, "dur": 0.8710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2068.687, "dur": 0.45600000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2090.111, "dur": 20.827000000000226, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2090.912, "dur": 5.498000000000047, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2092.391, "dur": 2.5470000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2093.396, "dur": 0.9159999999997126, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2097.207, "dur": 12.815000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2098.721, "dur": 0.8049999999998363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2100.592, "dur": 2.048999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2101.703, "dur": 0.47699999999986176, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2104.479, "dur": 3.356999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2141.741, "dur": 3.5279999999997926, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2142.653, "dur": 1.0850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2144.542, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2150.69, "dur": 74.5340000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2151.445, "dur": 0.8379999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2160.316, "dur": 3.8090000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2161.831, "dur": 0.6050000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2191.711, "dur": 19.952000000000226, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2195.514, "dur": 3.786999999999807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2196.631, "dur": 1.58600000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2200.428, "dur": 9.54800000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2201.673, "dur": 7.7140000000003965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2203.475, "dur": 1.1550000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2206.583, "dur": 1.6269999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2240.95, "dur": 4.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2242.158, "dur": 1.6050000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2245.023, "dur": 0.4420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2252.617, "dur": 116.64199999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2253.583, "dur": 1.05600000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2286.593, "dur": 0.4670000000000982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2315.323, "dur": 25.47900000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2316.536, "dur": 6.682999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2318.132, "dur": 3.007999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2319.232, "dur": 1.2289999999998145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2324.108, "dur": 15.694999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2325.77, "dur": 0.9929999999999382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2327.913, "dur": 2.369999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2329.262, "dur": 0.5229999999996835, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2332.34, "dur": 4.4909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2378.306, "dur": 4.036999999999807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2379.328, "dur": 1.3940000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2381.599, "dur": 0.4169999999999163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2388.471, "dur": 41.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2389.303, "dur": 0.9570000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2399.634, "dur": 4.405999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2401.449, "dur": 0.7210000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2411.467, "dur": 11.866999999999734, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2413.167, "dur": 1.7789999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2414.009, "dur": 0.5850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2415.72, "dur": 6.2590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2416.695, "dur": 4.757000000000062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2417.667, "dur": 0.5750000000002728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2419.703, "dur": 0.8330000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2439.854, "dur": 3.423000000000229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2440.79, "dur": 0.9600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2442.655, "dur": 0.31399999999985084, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2447.967, "dur": 93.93899999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2448.732, "dur": 0.8650000000002365, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2473.533, "dur": 0.47000000000025466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2496.437, "dur": 21.09400000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2497.408, "dur": 5.8090000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2498.875, "dur": 2.744999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2499.926, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2504.013, "dur": 12.68100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2505.438, "dur": 0.7559999999998581, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2507.147, "dur": 2.032000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2508.256, "dur": 0.43600000000014916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2510.87, "dur": 3.419000000000324, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2549.959, "dur": 3.824000000000069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2550.865, "dur": 1.3079999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2553.057, "dur": 0.37900000000036016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2559.233, "dur": 38.71499999999969, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2560.129, "dur": 0.9760000000001128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2569.632, "dur": 4.117999999999938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2571.354, "dur": 0.6090000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2580.376, "dur": 11.238999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2581.99, "dur": 1.6000000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2582.759, "dur": 0.48900000000003274, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2584.33, "dur": 6.041000000000167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2585.253, "dur": 4.65099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2586.194, "dur": 0.6199999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2588.22, "dur": 0.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2607.56, "dur": 3.262000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2608.448, "dur": 0.8920000000002801, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2610.189, "dur": 0.3140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2615.492, "dur": 95.64199999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2616.241, "dur": 0.9099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2639.38, "dur": 0.4099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2660.435, "dur": 26.63000000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2661.376, "dur": 5.481999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2662.813, "dur": 2.668999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2663.756, "dur": 1.1260000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2667.666, "dur": 18.36499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2669.047, "dur": 0.69399999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2670.661, "dur": 7.929999999999836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2677.602, "dur": 0.5030000000001564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2680.384, "dur": 3.217999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2718.924, "dur": 3.6210000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2719.847, "dur": 1.113999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2721.768, "dur": 0.4290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2728.182, "dur": 37.58699999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2728.974, "dur": 0.9649999999996908, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2738.125, "dur": 3.880999999999858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2739.773, "dur": 0.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2748.278, "dur": 11.194000000000415, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2749.853, "dur": 1.6059999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2750.563, "dur": 0.5540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2752.187, "dur": 5.969000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2753.12, "dur": 4.535000000000309, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2754.06, "dur": 0.5610000000001492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2756.031, "dur": 0.7860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2775.003, "dur": 3.2529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2775.899, "dur": 0.8640000000000327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2777.601, "dur": 0.3309999999996762, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2782.725, "dur": 86.07500000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2783.442, "dur": 0.8539999999998145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2805.403, "dur": 0.42000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2826.371, "dur": 19.817000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2827.278, "dur": 5.3659999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2828.635, "dur": 2.576999999999771, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2829.573, "dur": 0.9610000000002401, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2833.435, "dur": 11.880999999999858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2834.869, "dur": 0.7689999999997781, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2836.57, "dur": 1.9089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2837.592, "dur": 0.4339999999997417, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2840.169, "dur": 2.9900000000002365, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2876.209, "dur": 3.744000000000142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2877.159, "dur": 1.2199999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2879.176, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2885.3, "dur": 36.80699999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2886.071, "dur": 0.7960000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2894.716, "dur": 3.769999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2896.286, "dur": 0.6079999999997199, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2904.732, "dur": 11.396999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2906.411, "dur": 1.655999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2907.147, "dur": 0.5329999999999018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2908.827, "dur": 6.0219999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2909.725, "dur": 4.570999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2910.628, "dur": 0.5539999999996326, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2912.572, "dur": 0.9169999999999163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2931.202, "dur": 3.1799999999998363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2932.016, "dur": 0.9229999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2933.764, "dur": 0.30999999999994543, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2938.944, "dur": 90.16300000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2939.669, "dur": 0.7310000000002219, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2961.508, "dur": 0.3920000000002801, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2982.033, "dur": 24.182000000000244, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2982.908, "dur": 5.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2984.251, "dur": 2.574999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2985.249, "dur": 0.9370000000003529, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2988.962, "dur": 16.45600000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2994.388, "dur": 0.7899999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2996.2, "dur": 2.062000000000353, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2997.288, "dur": 0.5019999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3000.107, "dur": 3.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3036.817, "dur": 3.6770000000001346, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3037.661, "dur": 1.2300000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3039.74, "dur": 0.4070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3045.819, "dur": 37.0590000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3046.645, "dur": 0.8229999999998654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3055.536, "dur": 3.869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3057.143, "dur": 0.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3065.703, "dur": 11.047000000000025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3067.303, "dur": 1.6539999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3068.065, "dur": 0.5109999999999673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3069.676, "dur": 5.7970000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3070.585, "dur": 4.373999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3071.493, "dur": 0.5370000000002619, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3073.423, "dur": 0.7590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3091.856, "dur": 3.2399999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3092.692, "dur": 0.9070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3094.389, "dur": 0.3579999999997199, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3099.594, "dur": 85.25500000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3100.37, "dur": 0.8230000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3121.959, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3143.036, "dur": 19.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3143.895, "dur": 5.501000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3145.311, "dur": 2.5029999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3146.282, "dur": 0.9119999999998072, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3150.171, "dur": 11.635999999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3151.586, "dur": 0.6480000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3153.218, "dur": 2.050999999999931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3154.295, "dur": 0.4940000000001419, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3156.83, "dur": 2.8890000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3192.383, "dur": 3.5020000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3193.209, "dur": 1.0850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3195.141, "dur": 0.40599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3201.126, "dur": 87.69799999999987, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3201.983, "dur": 0.9489999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3210.943, "dur": 3.8399999999996908, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3212.57, "dur": 0.5869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3220.749, "dur": 61.06800000000021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3222.358, "dur": 50.98999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3223.097, "dur": 0.5119999999997162, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3274.305, "dur": 6.138000000000375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3275.34, "dur": 4.614999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3276.242, "dur": 0.5869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3278.182, "dur": 0.9280000000003383, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3298.445, "dur": 3.418999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3299.324, "dur": 0.9760000000001128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3301.151, "dur": 0.3320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3306.43, "dur": 89.6890000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3307.178, "dur": 0.7449999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3328.908, "dur": 0.42200000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3349.398, "dur": 23.786999999999807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3350.226, "dur": 5.292999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3351.573, "dur": 2.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3352.567, "dur": 0.9290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3356.31, "dur": 15.927999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3361.429, "dur": 0.7860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3363.255, "dur": 2.013999999999669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3364.324, "dur": 0.45899999999983265, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3366.88, "dur": 3.0789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3403.946, "dur": 3.731999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3404.827, "dur": 1.2169999999996435, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3406.884, "dur": 0.39600000000018554, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3412.985, "dur": 36.44399999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3413.773, "dur": 0.8350000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3422.783, "dur": 3.84900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3424.415, "dur": 0.612999999999829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3432.694, "dur": 10.791999999999916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3434.326, "dur": 1.5670000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3435.071, "dur": 0.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3436.611, "dur": 5.644999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3437.507, "dur": 4.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3438.369, "dur": 0.5270000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3440.217, "dur": 0.7519999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3458.453, "dur": 3.2530000000001564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3459.32, "dur": 0.918999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3461.078, "dur": 0.29899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3466.078, "dur": 84.4050000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3466.858, "dur": 0.8679999999999382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3488.646, "dur": 0.3799999999996544, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3508.991, "dur": 19.52500000000009, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3509.858, "dur": 5.291999999999916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3511.244, "dur": 2.5039999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3512.205, "dur": 0.8960000000001855, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3515.926, "dur": 11.789000000000215, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3517.383, "dur": 0.7390000000000327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3519.034, "dur": 2.000999999999749, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3520.074, "dur": 0.4919999999997344, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3522.625, "dur": 2.951000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3558.012, "dur": 3.4980000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3558.915, "dur": 1.1469999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3560.804, "dur": 0.36400000000003274, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3566.832, "dur": 39.728000000000065, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3567.634, "dur": 0.7640000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3576.313, "dur": 3.798999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3577.911, "dur": 0.61200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3586.018, "dur": 14.230000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3587.626, "dur": 1.606999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3588.358, "dur": 0.4859999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3589.945, "dur": 8.972999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3590.862, "dur": 7.5340000000001055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3591.753, "dur": 3.494999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3596.699, "dur": 0.9149999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3615.715, "dur": 3.212999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3616.626, "dur": 0.9179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3618.325, "dur": 0.2980000000002292, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3623.531, "dur": 83.56500000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3624.344, "dur": 0.7640000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3645.346, "dur": 0.387000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3665.899, "dur": 19.320999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3666.746, "dur": 5.230000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3668.143, "dur": 2.423999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3669.06, "dur": 0.88799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3672.747, "dur": 11.684999999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3674.194, "dur": 0.6219999999998436, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3675.837, "dur": 2.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3676.878, "dur": 0.49699999999984357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3679.445, "dur": 2.8409999999998945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3714.597, "dur": 3.586999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3715.459, "dur": 1.1730000000002292, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3717.468, "dur": 0.3830000000002656, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3723.576, "dur": 35.80000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3724.322, "dur": 0.8139999999998508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3732.804, "dur": 3.7529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3734.395, "dur": 0.581000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3742.514, "dur": 10.769999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3744.115, "dur": 1.6420000000002801, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3744.879, "dur": 0.48500000000012733, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3746.506, "dur": 5.561000000000149, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3747.408, "dur": 4.166999999999916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3748.23, "dur": 0.5830000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3750.115, "dur": 0.7130000000001928, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3768.161, "dur": 3.306999999999789, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3769.025, "dur": 1.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3770.852, "dur": 0.3160000000002583, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3776.026, "dur": 81.9670000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3776.775, "dur": 0.7779999999997926, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3797.548, "dur": 0.3710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3817.361, "dur": 18.98199999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3818.178, "dur": 5.108000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3819.489, "dur": 2.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3820.459, "dur": 0.8800000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3824.022, "dur": 11.514000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3825.448, "dur": 0.7029999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3827.056, "dur": 1.9229999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3828.073, "dur": 0.4450000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3830.563, "dur": 2.869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3865.57, "dur": 3.4769999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3866.419, "dur": 1.1040000000002692, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3868.261, "dur": 0.4329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3874.434, "dur": 38.97199999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3875.245, "dur": 0.7409999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3883.707, "dur": 3.71100000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3885.229, "dur": 0.5840000000002874, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3893.21, "dur": 13.746000000000095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3894.773, "dur": 1.6159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3895.581, "dur": 0.5029999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3897.09, "dur": 8.57400000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3897.965, "dur": 7.148999999999887, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3898.829, "dur": 3.30199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3903.562, "dur": 0.7989999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3922.471, "dur": 3.2649999999998727, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3923.364, "dur": 0.9470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3925.106, "dur": 0.32199999999966167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3930.286, "dur": 83.13799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3931.036, "dur": 0.8609999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3952.32, "dur": 0.37199999999984357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3972.559, "dur": 19.15199999999959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3973.411, "dur": 5.291000000000167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3974.794, "dur": 2.492999999999938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3975.742, "dur": 0.9229999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3979.444, "dur": 11.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3980.82, "dur": 0.6209999999996398, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3982.411, "dur": 1.9329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3983.452, "dur": 0.42899999999963256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3985.91, "dur": 2.881000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4020.872, "dur": 3.5350000000003092, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4021.827, "dur": 1.0669999999995525, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4023.692, "dur": 0.36799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 4029.711, "dur": 39.17300000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4030.54, "dur": 0.8420000000000982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4038.938, "dur": 3.837999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4040.573, "dur": 0.5779999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4048.594, "dur": 10.507000000000062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4050.198, "dur": 1.524000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4050.9, "dur": 0.5180000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4052.418, "dur": 5.496000000000095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4053.266, "dur": 4.135999999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4054.065, "dur": 0.5320000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4055.88, "dur": 0.7840000000001055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4077.953, "dur": 3.2910000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4078.851, "dur": 0.9909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4080.612, "dur": 0.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4085.948, "dur": 1372.9770000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4086.67, "dur": 0.9409999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4111.091, "dur": 0.40099999999983993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 4131.558, "dur": 32.238000000000284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4132.449, "dur": 7.664999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4133.778, "dur": 4.597999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4134.725, "dur": 2.92699999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4141.286, "dur": 11.944999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4142.659, "dur": 0.7390000000004875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4144.325, "dur": 1.936000000000604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4145.341, "dur": 0.4739999999992506, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4147.933, "dur": 3.0590000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5474.022, "dur": 8.443000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5476.344, "dur": 3.44800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5481.146, "dur": 0.9499999999998181, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 5491.1, "dur": 60.90299999999934, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5492.18, "dur": 1.0039999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5505.682, "dur": 6.256000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5508.611, "dur": 0.8599999999996726, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5522.638, "dur": 21.261000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5529.922, "dur": 2.117000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5530.944, "dur": 0.6899999999995998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5533.031, "dur": 9.42699999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5534.648, "dur": 7.030999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5535.983, "dur": 0.7550000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5538.601, "dur": 1.9180000000005748, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5564.599, "dur": 5.498999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5567.247, "dur": 1.2119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5569.411, "dur": 0.3500000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5575.506, "dur": 119.02899999999954, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5576.256, "dur": 1.0619999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5608.998, "dur": 0.6690000000007785, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 5637.345, "dur": 30.396999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5638.623, "dur": 8.217000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5640.46, "dur": 3.095999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5641.671, "dur": 1.1719999999995707, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5647.922, "dur": 18.89800000000014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5649.798, "dur": 0.8240000000005239, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5651.843, "dur": 2.462999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5653.198, "dur": 0.5619999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5656.857, "dur": 5.585000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5703.01, "dur": 5.648000000000138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5705.608, "dur": 1.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5707.994, "dur": 0.3600000000005821, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 5714.733, "dur": 42.51999999999953, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5715.505, "dur": 0.9570000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5725.405, "dur": 4.192000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5727.226, "dur": 0.6289999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5737.043, "dur": 13.551000000000386, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5738.758, "dur": 3.462999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5741.256, "dur": 0.61200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5742.989, "dur": 6.145000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5743.852, "dur": 4.748000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5744.796, "dur": 0.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5746.859, "dur": 0.8729999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5766.83, "dur": 4.842999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5767.757, "dur": 0.9120000000002619, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5770.98, "dur": 0.3720000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5776.722, "dur": 93.61999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5777.468, "dur": 0.8450000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5801.639, "dur": 0.4290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 5823.757, "dur": 22.557999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5824.643, "dur": 5.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5826.057, "dur": 2.7070000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5827.112, "dur": 1.001999999999498, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5832.475, "dur": 12.922999999999774, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5834.048, "dur": 0.7800000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5835.915, "dur": 2.1019999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5837.051, "dur": 0.4789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5839.745, "dur": 3.36200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5878.097, "dur": 5.543999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5879.013, "dur": 1.2420000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5881.117, "dur": 2.1799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 5889.594, "dur": 40.86499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5890.415, "dur": 1.0280000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5900.047, "dur": 4.1030000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5901.764, "dur": 0.6199999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5910.507, "dur": 13.155999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5912.14, "dur": 1.701999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5912.955, "dur": 0.5140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5916.276, "dur": 6.132000000000517, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5917.192, "dur": 4.6899999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5918.148, "dur": 0.6369999999997162, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5920.158, "dur": 0.8889999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5939.772, "dur": 3.4200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5940.672, "dur": 1.0489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5942.557, "dur": 0.3320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5949.379, "dur": 90.90499999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5950.091, "dur": 0.9219999999995707, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5972.54, "dur": 0.4080000000003565, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 5994.561, "dur": 22.51000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5995.465, "dur": 5.556999999999789, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5996.922, "dur": 2.611000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5997.948, "dur": 0.9809999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6001.782, "dur": 14.376000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6003.195, "dur": 2.52599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6006.77, "dur": 2.0979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6007.856, "dur": 0.45200000000022555, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6010.613, "dur": 3.1989999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6048.085, "dur": 3.66399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6049.008, "dur": 1.1909999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6051.107, "dur": 0.3350000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6059.322, "dur": 39.8119999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6060.076, "dur": 0.9499999999998181, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6069.384, "dur": 3.9769999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6071.019, "dur": 0.6189999999996871, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6079.684, "dur": 13.034999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6081.317, "dur": 1.6260000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6082.08, "dur": 0.5489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6083.623, "dur": 7.792000000000371, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6084.506, "dur": 6.393999999999323, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6087.236, "dur": 0.6300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6089.237, "dur": 0.8670000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6108.351, "dur": 3.3250000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6109.283, "dur": 0.9499999999998181, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6111.08, "dur": 0.29500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6116.334, "dur": 90.25600000000031, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6117.107, "dur": 2.657000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6141.043, "dur": 0.3780000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6161.941, "dur": 21.695999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6162.834, "dur": 5.253000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6164.161, "dur": 2.48700000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6165.125, "dur": 0.9260000000003856, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6168.858, "dur": 13.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6170.247, "dur": 0.7159999999994398, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6171.989, "dur": 3.7470000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6174.665, "dur": 0.5270000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6177.408, "dur": 3.1340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6214.453, "dur": 3.6679999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6215.4, "dur": 1.1880000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6217.424, "dur": 0.3760000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6223.729, "dur": 41.33399999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6224.623, "dur": 2.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6235.509, "dur": 3.9970000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6237.165, "dur": 0.5960000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6245.59, "dur": 13.043999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6247.351, "dur": 1.581000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6248.094, "dur": 0.5289999999995416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6249.693, "dur": 7.6599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6250.595, "dur": 6.210000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6251.546, "dur": 0.5639999999993961, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6255.108, "dur": 0.8629999999993743, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6274.263, "dur": 3.3919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6275.192, "dur": 0.8850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6277.003, "dur": 0.34900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6282.382, "dur": 91.22900000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6283.148, "dur": 0.76299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6305.186, "dur": 2.155999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6328.256, "dur": 21.904999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6329.156, "dur": 5.399999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6330.596, "dur": 2.4200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6331.54, "dur": 0.9329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6335.323, "dur": 13.951000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6336.773, "dur": 0.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6338.394, "dur": 3.649999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6339.495, "dur": 0.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6343.777, "dur": 3.2460000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6381.448, "dur": 3.5839999999998327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6382.424, "dur": 1.168999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6384.364, "dur": 0.33800000000064756, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6390.486, "dur": 40.78300000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6391.293, "dur": 0.9190000000007785, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6400.294, "dur": 5.833000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6403.804, "dur": 0.6459999999997308, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6412.325, "dur": 12.610000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6414.038, "dur": 1.6300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6414.793, "dur": 0.48800000000028376, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6416.37, "dur": 7.3530000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6417.236, "dur": 5.984000000000378, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6418.164, "dur": 0.6210000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6420.219, "dur": 0.8320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6440.58, "dur": 3.318000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6441.511, "dur": 0.964999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6443.286, "dur": 0.3010000000003856, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6448.563, "dur": 88.53600000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6449.328, "dur": 0.8709999999991851, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6471.264, "dur": 0.3989999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6491.894, "dur": 22.61999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6494.548, "dur": 5.302999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6495.843, "dur": 2.6220000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6496.827, "dur": 1.0489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6500.608, "dur": 13.095000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6501.99, "dur": 0.7309999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6503.671, "dur": 2.0649999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6504.736, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6507.319, "dur": 3.0789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6544.792, "dur": 3.639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6545.685, "dur": 1.2529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6547.745, "dur": 0.3569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6553.821, "dur": 40.485999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6554.523, "dur": 0.9610000000002401, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6563.655, "dur": 5.6340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6565.297, "dur": 0.5700000000006185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6575.539, "dur": 12.307999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6577.195, "dur": 1.5410000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6577.944, "dur": 0.4919999999992797, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6579.427, "dur": 5.957000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6580.331, "dur": 4.545000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6581.244, "dur": 0.5960000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6583.273, "dur": 0.818000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6603.356, "dur": 3.3159999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6604.247, "dur": 1.0189999999993233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6606.013, "dur": 0.33100000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6611.166, "dur": 87.93499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6611.922, "dur": 0.9280000000007931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6633.462, "dur": 0.4169999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6654.195, "dur": 22.36200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6655.073, "dur": 7.144999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6656.456, "dur": 4.27599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6659.16, "dur": 0.9490000000005239, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6662.979, "dur": 11.639000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6664.35, "dur": 0.6679999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6665.991, "dur": 2.005000000000109, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6667.01, "dur": 0.47599999999965803, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6669.592, "dur": 2.92200000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6706.798, "dur": 3.574999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6707.687, "dur": 1.1739999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6709.71, "dur": 0.34400000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6715.784, "dur": 39.05200000000059, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6716.618, "dur": 0.9600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6725.519, "dur": 3.8040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6727.145, "dur": 0.5629999999991924, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6737.122, "dur": 11.232999999999265, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6738.739, "dur": 1.6450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6739.472, "dur": 0.5630000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6741.093, "dur": 5.9909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6741.961, "dur": 4.601999999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6742.858, "dur": 0.6170000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6744.866, "dur": 0.8440000000000509, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6765.491, "dur": 3.3100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6766.351, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6768.145, "dur": 0.3349999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6773.53, "dur": 103.1260000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6774.274, "dur": 0.8239999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6795.483, "dur": 0.42699999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6815.861, "dur": 23.26000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6816.8, "dur": 8.65099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6818.128, "dur": 4.141000000000531, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6819.141, "dur": 0.8960000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6826.31, "dur": 12.03399999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6827.709, "dur": 0.7020000000002256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6829.474, "dur": 1.9349999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6830.517, "dur": 0.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6833.022, "dur": 3.1109999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6884.22, "dur": 3.020999999999731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6884.979, "dur": 1.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6886.691, "dur": 0.28099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6891.817, "dur": 31.136000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6892.468, "dur": 0.63799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6899.651, "dur": 3.1220000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6900.985, "dur": 0.5309999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6907.408, "dur": 10.527000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6910.184, "dur": 1.3009999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6910.807, "dur": 0.41200000000026193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6912.055, "dur": 4.844000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6912.786, "dur": 3.7070000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6913.538, "dur": 0.4790000000002692, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6915.117, "dur": 0.6979999999994106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6956.837, "dur": 4.862999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6957.766, "dur": 2.386000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6961.013, "dur": 0.35900000000037835, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6966.467, "dur": 86.9360000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6967.225, "dur": 0.7909999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6988.747, "dur": 0.43099999999958527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7009.158, "dur": 21.73199999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7010.068, "dur": 7.092999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7011.41, "dur": 2.532000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7012.428, "dur": 0.9340000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7018.006, "dur": 12.091999999999643, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7019.466, "dur": 0.6989999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7021.141, "dur": 2.068000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7022.235, "dur": 0.4710000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7024.906, "dur": 3.04700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7061.066, "dur": 5.204000000000633, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7061.969, "dur": 2.7479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7065.611, "dur": 0.32999999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7071.906, "dur": 38.57800000000043, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7072.711, "dur": 0.8119999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7081.532, "dur": 3.88799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7083.162, "dur": 0.6480000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7091.388, "dur": 12.641000000000531, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7093.043, "dur": 3.066000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7093.798, "dur": 1.9710000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7096.879, "dur": 5.850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7097.776, "dur": 4.460000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7098.653, "dur": 0.6300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7100.62, "dur": 0.8150000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7119.631, "dur": 4.902000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7120.548, "dur": 0.9440000000004147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7122.345, "dur": 1.8699999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7129.356, "dur": 391.2350000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7130.114, "dur": 0.8210000000008222, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7151.919, "dur": 0.44499999999970896, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7171.911, "dur": 322.39400000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7172.786, "dur": 5.41399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7174.131, "dur": 2.582999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7175.107, "dur": 0.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7179.003, "dur": 314.3070000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7480.823, "dur": 1.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7483.047, "dur": 2.236000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7484.214, "dur": 0.5600000000004002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7487.083, "dur": 3.47400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7529.109, "dur": 6.539999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7530.138, "dur": 1.1769999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7532.224, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7541.83, "dur": 42.439000000000306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7542.659, "dur": 0.9270000000005894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7552.458, "dur": 4.148000000000138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7554.188, "dur": 0.613999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7563.248, "dur": 14.502000000000407, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7564.997, "dur": 1.7150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7565.811, "dur": 0.5060000000003129, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7567.486, "dur": 8.969000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7570.88, "dur": 5.068000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7571.823, "dur": 0.6799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7573.912, "dur": 0.8469999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7594.075, "dur": 3.19800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7594.955, "dur": 0.8930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7596.667, "dur": 0.295999999999367, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7601.914, "dur": 95.3680000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7605.111, "dur": 0.8930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7629.615, "dur": 0.4040000000004511, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7651.455, "dur": 22.658000000000357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7652.388, "dur": 5.600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7653.869, "dur": 2.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7654.911, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7658.75, "dur": 14.451000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7660.202, "dur": 0.7469999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7664.078, "dur": 2.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7665.184, "dur": 0.5140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7667.908, "dur": 3.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7705.06, "dur": 3.7799999999997453, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7705.976, "dur": 1.3370000000004438, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7708.104, "dur": 0.40899999999965075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7714.365, "dur": 42.12700000000041, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7717.367, "dur": 0.8329999999996289, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7726.664, "dur": 3.867000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7728.249, "dur": 0.6460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7736.586, "dur": 13.470999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7738.209, "dur": 1.6829999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7739.025, "dur": 0.4960000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7740.606, "dur": 8.252000000000407, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7741.45, "dur": 6.898000000000138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7742.324, "dur": 2.8140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7746.614, "dur": 0.829000000000633, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7765.991, "dur": 3.243000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7766.863, "dur": 0.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7768.587, "dur": 0.3329999999996289, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7773.843, "dur": 91.15599999999995, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7774.615, "dur": 0.7800000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7798.725, "dur": 0.4029999999993379, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7819.851, "dur": 22.577000000000226, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7820.742, "dur": 5.335000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7822.063, "dur": 2.5979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7823.067, "dur": 0.9750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7826.843, "dur": 14.739000000000487, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7828.225, "dur": 0.6929999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7829.838, "dur": 4.637000000000626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7830.905, "dur": 3.0340000000005602, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7836.21, "dur": 3.207999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7872.738, "dur": 3.5729999999994106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7873.667, "dur": 1.1569999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7875.652, "dur": 0.3720000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7881.769, "dur": 42.60199999999986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7882.553, "dur": 0.8699999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7894.378, "dur": 4.020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7896.049, "dur": 0.6559999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7904.531, "dur": 13.404000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7906.163, "dur": 1.594000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7906.888, "dur": 0.5540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7908.427, "dur": 8.19800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7909.278, "dur": 6.8149999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7910.215, "dur": 0.5500000000001819, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7912.138, "dur": 3.0460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7933.449, "dur": 3.2730000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7934.362, "dur": 1.0109999999995125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7936.149, "dur": 0.26599999999962165, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7941.257, "dur": 90.98500000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7941.965, "dur": 0.8379999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7963.477, "dur": 0.4099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7987.1, "dur": 22.518999999999323, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7987.994, "dur": 5.552999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7989.483, "dur": 2.6369999999997162, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7990.494, "dur": 0.967000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7994.34, "dur": 14.381999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7995.787, "dur": 0.6449999999995271, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7997.378, "dur": 1.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7998.411, "dur": 0.4639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8003.247, "dur": 3.1749999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8040.198, "dur": 3.7529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8041.109, "dur": 1.3019999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8043.242, "dur": 0.38699999999971624, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8049.522, "dur": 42.05799999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8050.23, "dur": 0.8850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8059.073, "dur": 6.639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8063.329, "dur": 0.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8072.1, "dur": 13.212999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8073.693, "dur": 1.582999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8074.448, "dur": 0.5309999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8075.979, "dur": 8.143000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8076.867, "dur": 4.693000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8077.753, "dur": 0.636000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8079.759, "dur": 0.886000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8100.793, "dur": 3.2539999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8101.658, "dur": 0.918999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8103.419, "dur": 0.30900000000019645, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8108.709, "dur": 89.28999999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8109.426, "dur": 0.8159999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8130.629, "dur": 0.4099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8150.873, "dur": 24.199000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8151.772, "dur": 7.958999999999833, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8155.636, "dur": 2.5549999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8156.587, "dur": 0.9539999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8160.511, "dur": 13.65899999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8162.023, "dur": 0.7190000000000509, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8163.699, "dur": 2.0210000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8164.745, "dur": 0.467000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8167.405, "dur": 3.01299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8205.825, "dur": 3.4989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8206.721, "dur": 1.103000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8208.628, "dur": 0.3709999999991851, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8214.873, "dur": 42.43000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8215.688, "dur": 0.9040000000004511, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8224.748, "dur": 6.550000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8226.394, "dur": 0.6900000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8237.741, "dur": 11.22400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8239.361, "dur": 1.6649999999990541, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8240.216, "dur": 0.5129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8241.719, "dur": 6.022000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8242.583, "dur": 4.662000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8243.463, "dur": 0.6980000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8245.546, "dur": 0.8519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8266.773, "dur": 3.2290000000011787, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8267.688, "dur": 0.9140000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8269.393, "dur": 0.2919999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8274.726, "dur": 90.82699999999932, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8275.432, "dur": 0.8269999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8297.008, "dur": 0.47999999999956344, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8317.612, "dur": 22.882000000001426, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8318.539, "dur": 8.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8319.955, "dur": 5.201000000000931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8320.942, "dur": 3.5710000000017317, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8327.528, "dur": 12.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8328.962, "dur": 0.6790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8330.658, "dur": 2.0780000000013388, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8331.745, "dur": 0.46899999999914144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8334.372, "dur": 3.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8373.56, "dur": 3.548000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8374.461, "dur": 1.066000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8376.374, "dur": 0.3930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8382.721, "dur": 39.926000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8383.522, "dur": 0.8299999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8392.438, "dur": 3.9789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8394.101, "dur": 0.602999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8402.266, "dur": 13.925000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8406.627, "dur": 1.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8407.389, "dur": 0.5720000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8409.094, "dur": 5.8700000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8409.969, "dur": 4.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8410.814, "dur": 0.5839999999989232, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8412.763, "dur": 0.8409999999985303, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8431.958, "dur": 6.07799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8435.477, "dur": 1.0189999999984138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8437.398, "dur": 0.35600000000158616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8443.073, "dur": 89.35499999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8443.87, "dur": 0.8899999999994179, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8465.921, "dur": 0.3680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8486.459, "dur": 22.451999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8487.321, "dur": 8.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8488.691, "dur": 2.4499999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8489.634, "dur": 0.9110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8496.141, "dur": 11.94000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8497.59, "dur": 0.6460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8499.22, "dur": 2.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8500.332, "dur": 0.44399999999950523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8502.886, "dur": 3.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8540.375, "dur": 6.1340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8543.678, "dur": 1.2409999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8545.803, "dur": 0.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8552.132, "dur": 39.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8552.973, "dur": 0.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8562.049, "dur": 3.797999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8563.661, "dur": 0.5959999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8571.793, "dur": 13.52599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8573.388, "dur": 4.060999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8576.503, "dur": 0.5979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8578.144, "dur": 5.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8579.043, "dur": 4.556000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8579.95, "dur": 0.6489999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8581.968, "dur": 0.7539999999989959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8601.333, "dur": 5.614999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8602.219, "dur": 0.9370000000017171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8606.332, "dur": 0.30199999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8611.945, "dur": 88.83500000000095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8612.742, "dur": 0.9719999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8634.469, "dur": 0.4360000000015134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8655.136, "dur": 22.555999999998676, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8656.036, "dur": 5.570999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8657.416, "dur": 2.6300000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8658.366, "dur": 1.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8664.566, "dur": 12.20299999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8666.05, "dur": 0.761000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8667.888, "dur": 1.9679999999989377, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8668.969, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8671.519, "dur": 3.110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8708.593, "dur": 6.344999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8709.479, "dur": 1.2840000000014697, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8714.201, "dur": 0.42400000000088767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8720.584, "dur": 40.134000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8721.366, "dur": 0.852999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8730.539, "dur": 3.933999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8732.15, "dur": 0.6779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8740.362, "dur": 13.96600000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8742.066, "dur": 4.172999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8742.854, "dur": 0.5150000000012369, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8746.957, "dur": 6.130999999999403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8747.917, "dur": 4.677999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8748.81, "dur": 0.6710000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8750.867, "dur": 0.8140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8770.117, "dur": 3.173000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8770.996, "dur": 0.8680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8772.661, "dur": 0.30799999999908323, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8780.317, "dur": 88.07200000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8781.097, "dur": 0.8649999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8802.364, "dur": 0.3670000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8823.169, "dur": 22.65400000000045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8824.09, "dur": 5.4760000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8825.435, "dur": 2.606999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8826.432, "dur": 1.0239999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8830.358, "dur": 14.550999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8831.83, "dur": 3.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8836.035, "dur": 2.007999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8837.107, "dur": 0.4830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8839.669, "dur": 3.058000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8876.05, "dur": 3.5100000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8876.992, "dur": 1.0390000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8878.834, "dur": 0.3709999999991851, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8887.75, "dur": 39.14400000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8888.53, "dur": 0.8850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8897.338, "dur": 3.930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8898.916, "dur": 0.6640000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8907.295, "dur": 13.272999999999229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8908.893, "dur": 1.7009999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8909.638, "dur": 0.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8911.29, "dur": 8.070999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8912.171, "dur": 6.652000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8915.15, "dur": 0.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8917.205, "dur": 0.8379999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8935.942, "dur": 3.3360000000011496, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8936.851, "dur": 1.0399999999990541, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8938.65, "dur": 0.30500000000029104, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8943.818, "dur": 90.125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8944.55, "dur": 3.1920000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8968.516, "dur": 0.37000000000080036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8988.851, "dur": 22.402000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8989.757, "dur": 5.566000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8991.141, "dur": 2.6120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8992.112, "dur": 1.0020000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8996.08, "dur": 14.306000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8997.458, "dur": 0.6829999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8999.082, "dur": 4.423999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9002.469, "dur": 0.4900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9005.144, "dur": 3.030000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9041.605, "dur": 3.5390000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9042.445, "dur": 1.2260000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9044.426, "dur": 0.386000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9050.586, "dur": 42.52100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9051.368, "dur": 3.55199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9063.334, "dur": 3.859999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9064.908, "dur": 0.6490000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9073.273, "dur": 13.481999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9074.9, "dur": 1.5500000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9075.634, "dur": 0.5030000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9077.157, "dur": 8.369000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9078.034, "dur": 6.9950000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9078.955, "dur": 0.569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9083.331, "dur": 0.8269999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9102.48, "dur": 3.1010000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9103.304, "dur": 0.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9104.978, "dur": 0.29500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9110.039, "dur": 90.0059999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9110.789, "dur": 0.7799999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9131.876, "dur": 2.9459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9155.256, "dur": 22.25, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9156.206, "dur": 5.269000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9157.594, "dur": 2.459000000000742, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9158.553, "dur": 0.9030000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9162.212, "dur": 14.415000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9163.58, "dur": 0.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9165.219, "dur": 4.4540000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9166.219, "dur": 0.4690000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9171.345, "dur": 3.070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9207.58, "dur": 3.5120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9208.489, "dur": 1.0690000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9210.381, "dur": 0.35200000000077125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9216.484, "dur": 41.495999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9217.4, "dur": 0.8330000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9226.048, "dur": 6.166999999999462, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9229.907, "dur": 0.6400000000012369, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9238.412, "dur": 13.324999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9240.074, "dur": 1.7119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9240.871, "dur": 0.5460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9242.478, "dur": 8.056000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9243.375, "dur": 6.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9244.292, "dur": 0.6530000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9246.297, "dur": 0.8680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9267.164, "dur": 3.4399999999986903, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9268.035, "dur": 1.0900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9269.938, "dur": 0.3430000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9275.414, "dur": 89.28499999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9276.173, "dur": 0.9369999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9297.596, "dur": 0.38100000000122236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9318.153, "dur": 24.045000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9321.296, "dur": 5.550999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9322.725, "dur": 2.6369999999988067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9323.749, "dur": 0.9940000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9327.577, "dur": 13.78400000000147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9329.008, "dur": 0.6219999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9330.557, "dur": 2.07799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9331.566, "dur": 0.5319999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9334.31, "dur": 4.84400000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9372.398, "dur": 3.606000000001586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9373.336, "dur": 1.0950000000011642, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9375.266, "dur": 0.40500000000065484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9381.462, "dur": 41.46600000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9382.24, "dur": 0.9310000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9390.905, "dur": 6.516999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9392.514, "dur": 3.176000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9403.566, "dur": 12.897999999999229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9405.186, "dur": 1.577000000001135, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9405.956, "dur": 0.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9407.459, "dur": 5.798999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9408.327, "dur": 4.436000000001513, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9409.226, "dur": 0.5999999999985448, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9411.16, "dur": 0.8140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9432.138, "dur": 3.4089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9433.016, "dur": 1.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9434.853, "dur": 0.34900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9440.186, "dur": 164.42799999999988, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9440.926, "dur": 0.8190000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9461.776, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9482.11, "dur": 89.07099999999991, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9483.033, "dur": 8.31500000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9484.436, "dur": 5.329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9488.167, "dur": 1.011000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9548.131, "dur": 18.266999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9551.138, "dur": 1.3549999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9554.849, "dur": 2.638999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9556.107, "dur": 0.8099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9559.547, "dur": 3.661000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9613.465, "dur": 4.066000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9614.545, "dur": 1.2849999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9616.716, "dur": 0.5049999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9623.234, "dur": 41.10999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9623.969, "dur": 1.0580000000009022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9633.472, "dur": 4.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9635.165, "dur": 0.6099999999987631, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9647.407, "dur": 11.061999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9648.936, "dur": 1.8029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9649.813, "dur": 0.5769999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9651.384, "dur": 5.927999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9652.224, "dur": 4.5679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9653.194, "dur": 0.5870000000013533, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9655.133, "dur": 0.8449999999993452, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9676.283, "dur": 2.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9677.009, "dur": 0.9020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9678.599, "dur": 0.2890000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9683.35, "dur": 134.73099999999977, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9683.97, "dur": 0.8100000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9711.175, "dur": 0.43699999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9732.651, "dur": 51.173000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9733.449, "dur": 7.738999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9734.704, "dur": 5.126000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9735.603, "dur": 0.9740000000001601, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9741.866, "dur": 41.024999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9742.991, "dur": 0.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9744.583, "dur": 1.8069999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9745.584, "dur": 0.3829999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9747.922, "dur": 32.465000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9829.426, "dur": 4.306000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9830.509, "dur": 1.514999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9832.906, "dur": 0.48699999999917054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9840.279, "dur": 53.41699999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9841.32, "dur": 1.4320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9855.494, "dur": 5.899999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9857.881, "dur": 0.9320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9870.131, "dur": 15.94000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9875.151, "dur": 2.1229999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9876.135, "dur": 0.6659999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9878.034, "dur": 6.7590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9878.975, "dur": 5.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9880.188, "dur": 0.6730000000006839, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9882.3, "dur": 1.070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9904.012, "dur": 5.662999999998647, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9904.906, "dur": 3.1789999999982683, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9908.972, "dur": 0.38400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9914.797, "dur": 117.25200000000041, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9915.578, "dur": 1.0390000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9941.073, "dur": 0.44499999999970896, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9969.743, "dur": 34.23499999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9971.076, "dur": 10.852000000000771, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9972.961, "dur": 3.6930000000011205, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9974.32, "dur": 1.3739999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9983.233, "dur": 19.73999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9987.62, "dur": 1.256999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9990.576, "dur": 2.9470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9992.123, "dur": 0.7209999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9996.127, "dur": 4.036000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10040.73, "dur": 6.92200000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10041.778, "dur": 4.208000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10046.892, "dur": 0.4210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10053.905, "dur": 46.638999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10054.789, "dur": 0.929999999998472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10064.769, "dur": 4.1010000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10066.402, "dur": 0.6829999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10075.742, "dur": 17.844999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10077.497, "dur": 4.27599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10078.448, "dur": 2.95299999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10082.531, "dur": 9.724999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10083.45, "dur": 8.200999999999112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10087.826, "dur": 0.625, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10089.929, "dur": 0.8269999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10110.491, "dur": 5.730999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10111.415, "dur": 1.0059999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10113.203, "dur": 2.6970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10121.369, "dur": 94.6260000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10122.165, "dur": 0.940999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10145.93, "dur": 0.44099999999889405, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10168.523, "dur": 22.88300000000163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10169.441, "dur": 5.492999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10170.813, "dur": 2.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10171.783, "dur": 1.029000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10175.783, "dur": 14.753000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10179.8, "dur": 0.7460000000010041, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10181.532, "dur": 1.9970000000012078, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10182.578, "dur": 0.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10185.128, "dur": 3.2039999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10223.939, "dur": 6.2039999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10224.871, "dur": 1.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10226.867, "dur": 2.9459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10236.033, "dur": 40.82099999999991, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10236.808, "dur": 0.9049999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10246.01, "dur": 3.878000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10247.583, "dur": 0.6409999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10256.225, "dur": 14.100000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10257.903, "dur": 1.7379999999993743, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10258.732, "dur": 0.49400000000059663, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10260.406, "dur": 8.71599999999853, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10263.928, "dur": 4.699000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10264.876, "dur": 0.5830000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10266.871, "dur": 0.8110000000015134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10286.561, "dur": 3.3960000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10287.462, "dur": 1.0889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10289.358, "dur": 0.3040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10294.603, "dur": 94.75700000000143, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10297.622, "dur": 0.8590000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10320.368, "dur": 0.4210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10342.183, "dur": 22.521999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10343.084, "dur": 5.441999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10344.432, "dur": 2.6229999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10345.393, "dur": 0.9429999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10349.31, "dur": 14.54200000000128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10350.839, "dur": 0.683999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10354.911, "dur": 2.0319999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10355.989, "dur": 0.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10358.575, "dur": 3.0209999999988213, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10397.387, "dur": 3.561999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10398.314, "dur": 1.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10400.242, "dur": 0.3989999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10406.411, "dur": 45.858000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10409.957, "dur": 0.9269999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10419.367, "dur": 3.8079999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10420.938, "dur": 0.5969999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10429.444, "dur": 16.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10431.065, "dur": 1.6890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10431.851, "dur": 0.5159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10433.459, "dur": 10.95799999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10434.341, "dur": 9.549999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10438.728, "dur": 1.9600000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10442.228, "dur": 0.8190000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10461.856, "dur": 3.2479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10462.675, "dur": 0.9729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10464.52, "dur": 0.2809999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10469.819, "dur": 92.10699999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10470.563, "dur": 0.8150000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10495.497, "dur": 0.4320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10516.698, "dur": 22.29700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10517.617, "dur": 5.329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10518.995, "dur": 2.4909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10519.964, "dur": 0.8870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10523.682, "dur": 14.394999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10525.113, "dur": 0.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10526.704, "dur": 4.435999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10527.756, "dur": 2.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10532.855, "dur": 3.0120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10569.688, "dur": 3.668999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10570.593, "dur": 1.1700000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10572.648, "dur": 0.386000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10578.56, "dur": 42.222999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10579.338, "dur": 0.7910000000010768, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10591.046, "dur": 3.8809999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10592.616, "dur": 0.6329999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10601.208, "dur": 13.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10602.8, "dur": 1.6230000000014115, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10603.604, "dur": 0.49800000000141154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10605.129, "dur": 8.20799999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10606.043, "dur": 6.787000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10606.929, "dur": 0.5599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10608.884, "dur": 3.1080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10630.42, "dur": 3.378000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10631.356, "dur": 0.9899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10633.146, "dur": 0.32699999999931606, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10638.54, "dur": 115.82499999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10639.303, "dur": 0.9310000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10661.519, "dur": 0.4319999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10685.342, "dur": 43.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10686.161, "dur": 12.993000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10694.808, "dur": 2.877999999998792, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10695.93, "dur": 1.0679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10699.899, "dur": 27.703999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10701.361, "dur": 0.635999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10703.011, "dur": 1.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10704.094, "dur": 0.44800000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10708.891, "dur": 16.173000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10762.712, "dur": 4.058000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10763.766, "dur": 1.2970000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10766.053, "dur": 0.3889999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10772.617, "dur": 53.21700000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10773.411, "dur": 0.8700000000008004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10788.605, "dur": 6.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10792.997, "dur": 0.7100000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10802.071, "dur": 16.951999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10803.843, "dur": 1.606999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10804.603, "dur": 0.5500000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10806.157, "dur": 11.581000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10807.033, "dur": 8.139000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10811.361, "dur": 0.6479999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10813.461, "dur": 0.8559999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10835.625, "dur": 3.399999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10836.619, "dur": 0.9629999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10838.408, "dur": 0.31600000000071304, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10843.736, "dur": 93.04199999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10844.485, "dur": 0.8059999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10867.105, "dur": 0.40200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10888.677, "dur": 24.32600000000093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10889.56, "dur": 7.681000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10893.272, "dur": 2.6049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10894.174, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10897.991, "dur": 14.155000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10899.383, "dur": 0.636000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10901.045, "dur": 1.896999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10902.045, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10904.607, "dur": 3.1460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10944.384, "dur": 3.7739999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10945.305, "dur": 1.27599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10947.452, "dur": 0.3919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10953.495, "dur": 48.987999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10954.319, "dur": 0.8829999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10963.266, "dur": 6.135000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10964.867, "dur": 0.5879999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10975.692, "dur": 11.160000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10977.378, "dur": 1.6109999999989668, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10978.148, "dur": 0.5510000000012951, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10979.677, "dur": 5.963999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10980.592, "dur": 4.516999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10981.514, "dur": 0.603000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10983.442, "dur": 0.8540000000011787, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11012.171, "dur": 3.5529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11013.172, "dur": 1.0429999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11015.108, "dur": 0.3099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11020.536, "dur": 92.4940000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11021.254, "dur": 0.9009999999998399, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11044.099, "dur": 0.4500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11065.381, "dur": 22.595000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11066.251, "dur": 7.8770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11067.722, "dur": 5.020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11068.678, "dur": 3.407999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11074.906, "dur": 12.193999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11076.428, "dur": 0.7229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11078.098, "dur": 2.0159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11079.209, "dur": 0.4349999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11081.729, "dur": 3.1050000000013824, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11120.917, "dur": 3.699000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11121.844, "dur": 1.2550000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11123.928, "dur": 0.3790000000008149, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11130.057, "dur": 41.54699999999866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11130.861, "dur": 0.8099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11139.364, "dur": 3.860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11140.943, "dur": 0.6150000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11149.197, "dur": 15.782999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11153.158, "dur": 1.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11153.95, "dur": 0.5139999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11155.462, "dur": 8.282000000001062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11156.339, "dur": 6.906999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11159.553, "dur": 0.543999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11161.547, "dur": 0.8909999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11180.807, "dur": 5.445999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11183.786, "dur": 1.043999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11185.63, "dur": 0.32300000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11191.144, "dur": 88.51800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11191.908, "dur": 0.7950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11213.765, "dur": 0.41300000000046566, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11235.034, "dur": 21.863999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11235.911, "dur": 7.310999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11237.289, "dur": 2.4029999999984284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11238.211, "dur": 0.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11244.144, "dur": 11.972999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11245.601, "dur": 0.6759999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11247.251, "dur": 2.0489999999990687, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11248.408, "dur": 0.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11250.846, "dur": 3.0230000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11287.406, "dur": 5.855999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11290.546, "dur": 1.168999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11292.557, "dur": 0.3789999999989959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11298.737, "dur": 39.72200000000157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11299.593, "dur": 0.8220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11308.562, "dur": 3.8549999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11310.182, "dur": 0.6279999999987922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11318.47, "dur": 13.46900000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11320.113, "dur": 3.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11323.148, "dur": 0.5610000000015134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11324.756, "dur": 5.9650000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11325.675, "dur": 4.558000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11326.531, "dur": 0.5559999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11328.465, "dur": 0.8729999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11347.863, "dur": 5.611000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11348.824, "dur": 0.9729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11352.781, "dur": 0.36299999999937427, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11358.516, "dur": 87.74099999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11359.333, "dur": 0.9020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11381.162, "dur": 0.4179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11402.141, "dur": 21.655000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11403.005, "dur": 5.145000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11404.364, "dur": 2.4350000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11405.253, "dur": 0.9389999999984866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11411.07, "dur": 11.860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11412.509, "dur": 0.7270000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11414.152, "dur": 1.9529999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11415.203, "dur": 0.4320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11417.751, "dur": 3.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11453.993, "dur": 5.868999999998778, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11454.864, "dur": 1.1820000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11459.155, "dur": 0.3819999999996071, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11465.523, "dur": 41.38500000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11466.299, "dur": 0.8949999999986176, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11475.151, "dur": 3.7270000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11476.703, "dur": 0.613999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11484.84, "dur": 15.496999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11486.473, "dur": 4.068999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11487.233, "dur": 0.5120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11491.273, "dur": 7.84900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11492.159, "dur": 6.458000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11495.028, "dur": 0.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11497.011, "dur": 0.7799999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11516.342, "dur": 5.565999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11517.281, "dur": 0.9579999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11519.072, "dur": 0.30099999999947613, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11526.711, "dur": 87.4930000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11527.486, "dur": 0.8879999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11549.128, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11569.915, "dur": 21.701999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11570.776, "dur": 5.139000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11572.121, "dur": 2.412000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11573.053, "dur": 0.9519999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11576.73, "dur": 14.051000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11580.258, "dur": 0.6869999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11581.888, "dur": 2.036999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11582.992, "dur": 0.4750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11585.53, "dur": 3.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11621.73, "dur": 3.621000000001004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11622.657, "dur": 1.1890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11624.667, "dur": 0.3569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11633.29, "dur": 38.90799999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11634.087, "dur": 0.8739999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11642.841, "dur": 3.7520000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11644.38, "dur": 0.6060000000015862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11652.648, "dur": 13.189000000000306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11654.25, "dur": 1.6389999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11654.965, "dur": 0.5509999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11656.559, "dur": 8.092000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11657.447, "dur": 6.677999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11660.491, "dur": 0.5450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11662.478, "dur": 0.8580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11681.465, "dur": 3.293999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11682.388, "dur": 0.9479999999985012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11684.136, "dur": 0.31199999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11689.283, "dur": 90.5590000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11690.011, "dur": 3.1489999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11714.269, "dur": 0.42699999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11735.217, "dur": 22.3179999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11736.209, "dur": 5.218999999999141, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11737.517, "dur": 2.4870000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11738.465, "dur": 0.9509999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11742.211, "dur": 14.450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11743.682, "dur": 0.7529999999987922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11745.389, "dur": 4.468000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11748.942, "dur": 0.4570000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11751.538, "dur": 2.970999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11787.516, "dur": 3.5599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11788.44, "dur": 1.128999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11790.386, "dur": 0.3789999999989959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11796.546, "dur": 43.38199999999961, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11797.289, "dur": 3.2549999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11808.55, "dur": 3.835000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11810.143, "dur": 0.5990000000001601, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11818.291, "dur": 15.222999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11819.928, "dur": 4.039000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11823.078, "dur": 0.5429999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11824.688, "dur": 7.519000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11825.647, "dur": 6.036999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11826.511, "dur": 0.5519999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11829.967, "dur": 0.8940000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11849.296, "dur": 3.227999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11850.154, "dur": 0.9579999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11851.913, "dur": 0.31599999999889405, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11857.198, "dur": 94.86299999999937, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11857.945, "dur": 0.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11883.061, "dur": 2.8170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11907.033, "dur": 21.799000000000888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11907.856, "dur": 5.353000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11909.212, "dur": 2.5169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11910.165, "dur": 0.9829999999983556, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11913.965, "dur": 14.043999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11915.375, "dur": 0.7700000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11917.006, "dur": 4.081000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11917.986, "dur": 0.40499999999883585, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11922.825, "dur": 2.988999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11959.775, "dur": 3.559000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11960.67, "dur": 1.1790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11962.642, "dur": 0.37700000000040745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11968.886, "dur": 41.95999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11969.687, "dur": 0.8870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11978.358, "dur": 6.461999999999534, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11982.545, "dur": 0.6110000000007858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11990.986, "dur": 13.330999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11992.577, "dur": 1.5940000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11993.304, "dur": 0.4930000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11994.847, "dur": 8.273999999999432, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11995.732, "dur": 6.858000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11996.674, "dur": 0.5519999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11998.587, "dur": 0.8209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12020.374, "dur": 3.3539999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12021.242, "dur": 1.076999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12023.089, "dur": 0.3289999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12028.285, "dur": 89.5010000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12028.989, "dur": 0.8360000000011496, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12050.33, "dur": 0.41599999999925785, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12071.002, "dur": 23.618000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12074.226, "dur": 5.1819999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12075.57, "dur": 2.449000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12076.516, "dur": 0.8980000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12080.146, "dur": 13.618999999998778, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12081.539, "dur": 0.6529999999984284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12083.123, "dur": 2.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12084.218, "dur": 0.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12086.784, "dur": 4.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12125.563, "dur": 3.7229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12126.49, "dur": 1.2659999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12128.567, "dur": 0.40500000000065484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12137.446, "dur": 68.76599999999962, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12138.264, "dur": 0.8760000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12147.462, "dur": 8.405000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12149.048, "dur": 2.992000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12162.366, "dur": 16.004000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12164.087, "dur": 4.167000000001281, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12167.261, "dur": 0.613999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12168.979, "dur": 6.2409999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12169.863, "dur": 4.831000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12170.745, "dur": 0.6279999999987922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12172.887, "dur": 0.9020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12236.131, "dur": 2.8150000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12236.881, "dur": 0.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12238.428, "dur": 0.2739999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12242.866, "dur": 144.8119999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12243.491, "dur": 0.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12278.083, "dur": 0.33799999999973807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12323.553, "dur": 41.13199999999961, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12324.3, "dur": 25.247000000001208, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12345.525, "dur": 2.5460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12346.509, "dur": 0.9159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12350.296, "dur": 11.981999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12351.761, "dur": 0.7029999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12353.403, "dur": 1.9750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12354.45, "dur": 0.4709999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12356.92, "dur": 3.0709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12395.533, "dur": 3.6920000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12396.449, "dur": 1.2600000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12398.503, "dur": 0.396999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12404.524, "dur": 39.91200000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12405.31, "dur": 0.8389999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12414.016, "dur": 3.949000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12415.648, "dur": 0.647000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12426.878, "dur": 11.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12428.536, "dur": 1.6380000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12429.271, "dur": 0.5849999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12430.886, "dur": 5.924999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12431.778, "dur": 4.528000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12432.645, "dur": 0.5569999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12434.581, "dur": 0.8659999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12456.12, "dur": 3.2950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12456.995, "dur": 1.0139999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12458.811, "dur": 0.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12464.006, "dur": 93.32400000000052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12464.725, "dur": 0.8519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12489.456, "dur": 0.42599999999947613, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12510.202, "dur": 23.809000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12511.106, "dur": 7.478000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12512.385, "dur": 4.77599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12513.351, "dur": 1.010999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12519.32, "dur": 13.854999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12520.78, "dur": 0.6089999999985594, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12522.32, "dur": 2.0540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12523.47, "dur": 0.4680000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12525.991, "dur": 4.902000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12567.519, "dur": 3.8479999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12568.476, "dur": 1.2749999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12570.634, "dur": 0.40200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12576.894, "dur": 39.21299999999974, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12577.705, "dur": 0.805000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12586.495, "dur": 3.855999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12588.061, "dur": 0.625, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12596.258, "dur": 13.476000000000568, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12600.164, "dur": 1.5579999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12600.861, "dur": 0.5209999999988213, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12602.448, "dur": 5.994999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12603.307, "dur": 4.570999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12604.173, "dur": 0.5829999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12606.14, "dur": 0.8180000000011205, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12625.525, "dur": 5.460000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12626.435, "dur": 3.0979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12630.38, "dur": 0.3100000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12635.758, "dur": 88.52200000000084, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12636.56, "dur": 0.8680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12658.525, "dur": 0.44800000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12679.224, "dur": 22.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12680.02, "dur": 8.057999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12681.358, "dur": 2.5210000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12682.286, "dur": 1.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12688.851, "dur": 11.691999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12690.245, "dur": 0.6809999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12691.833, "dur": 1.9349999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12692.865, "dur": 0.4709999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12695.445, "dur": 3.0310000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12732.024, "dur": 6.097999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12732.954, "dur": 3.5490000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12737.418, "dur": 0.3989999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12743.84, "dur": 39.35499999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12744.689, "dur": 0.7759999999998399, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12753.639, "dur": 3.9240000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12755.255, "dur": 0.5910000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12763.469, "dur": 13.444000000001324, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12765.112, "dur": 3.7220000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12765.862, "dur": 2.617000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12769.655, "dur": 6.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12770.614, "dur": 4.5240000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12771.445, "dur": 0.5760000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12773.408, "dur": 0.8880000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12792.406, "dur": 5.511999999998807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12793.328, "dur": 0.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12794.999, "dur": 2.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12802.584, "dur": 90.54799999999886, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12803.354, "dur": 0.9130000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12825.614, "dur": 0.4250000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12846.364, "dur": 24.137000000000626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12847.304, "dur": 5.167999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12848.595, "dur": 2.519000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12849.533, "dur": 0.956000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12853.256, "dur": 16.33100000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12857.108, "dur": 2.855999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12860.885, "dur": 1.951999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12861.899, "dur": 0.4819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12864.436, "dur": 3.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12900.911, "dur": 6.020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12901.771, "dur": 1.1199999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12903.715, "dur": 2.8690000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12912.403, "dur": 38.89300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12913.277, "dur": 0.956000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12922.239, "dur": 3.757999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12923.748, "dur": 0.6020000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12931.921, "dur": 13.05699999999888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12933.561, "dur": 1.5709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12934.29, "dur": 0.5309999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12937.833, "dur": 5.947000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12938.738, "dur": 4.505000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12939.574, "dur": 0.5979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12941.567, "dur": 0.8000000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12960.526, "dur": 3.264000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12961.445, "dur": 0.8450000000011642, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12963.131, "dur": 0.3580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12970.648, "dur": 640.8760000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12971.442, "dur": 0.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12993.194, "dur": 0.43699999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 13013.671, "dur": 568.098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13014.584, "dur": 5.342999999998938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13015.967, "dur": 2.5090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13016.911, "dur": 0.9549999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13020.728, "dur": 559.7790000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13022.136, "dur": 0.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13569.571, "dur": 2.5419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13570.921, "dur": 0.6440000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13574.051, "dur": 3.4800000000013824, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13620.213, "dur": 4.345000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13621.283, "dur": 1.4950000000008004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13623.781, "dur": 0.4379999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 13630.574, "dur": 48.39499999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13634.072, "dur": 0.907999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13644.527, "dur": 4.183999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13646.218, "dur": 0.6439999999984138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13655.739, "dur": 16.61499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13657.516, "dur": 1.668999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13658.306, "dur": 0.5299999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13659.935, "dur": 11.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13661.084, "dur": 9.350999999998749, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13662.038, "dur": 4.897999999999229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13668.442, "dur": 0.9010000000016589, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13688.96, "dur": 3.4250000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13689.955, "dur": 0.9750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13691.781, "dur": 0.3129999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13697.228, "dur": 97.23300000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13698.04, "dur": 0.8289999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13724.748, "dur": 0.41700000000128057, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 13747.986, "dur": 22.938999999998487, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13749.011, "dur": 5.6819999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13750.511, "dur": 2.57799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13751.453, "dur": 1.077000000001135, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13755.465, "dur": 14.566000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13756.972, "dur": 0.6450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13758.652, "dur": 4.225000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13759.717, "dur": 2.6970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13764.638, "dur": 3.0829999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13802.476, "dur": 3.9659999999985303, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13803.474, "dur": 1.396999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13805.746, "dur": 0.3890000000010332, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 13811.809, "dur": 55.63000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13812.683, "dur": 1.0569999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13824.932, "dur": 4.0569999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13826.625, "dur": 0.6880000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13835.056, "dur": 25.26800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13836.824, "dur": 1.5679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13837.571, "dur": 0.5149999999994179, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13839.12, "dur": 19.922999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13840.036, "dur": 18.432999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13852.355, "dur": 0.6430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13854.522, "dur": 2.9839999999985594, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13877.081, "dur": 3.3510000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13878.004, "dur": 0.9899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13879.823, "dur": 0.2999999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13885.23, "dur": 93.53900000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13885.989, "dur": 0.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13908.665, "dur": 0.4289999999982683, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 13933.401, "dur": 22.036000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13934.361, "dur": 5.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13935.675, "dur": 2.5310000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13936.598, "dur": 1.0229999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13940.381, "dur": 14.26300000000083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13941.784, "dur": 0.7049999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13943.373, "dur": 2.015000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13944.484, "dur": 0.4709999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13949.232, "dur": 3.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13986.665, "dur": 3.580999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13987.536, "dur": 1.1559999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13989.544, "dur": 0.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 13995.88, "dur": 10.150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13996.686, "dur": 0.9040000000004511, "tid": 1, "pid": "CPU functions", "args": {}}] diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index b4d7fd6febc06..4500053719294 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -445,13 +445,15 @@ def fit( | || {self.dispatch} || | || LIGHTNING - {self.accelerator.start_training} or || - {self.accelerator.start_evaluating} or || FLOW - {self.accelerator.start_predicting} || + {self.accelerator.start_training} || + or {self.accelerator.start_evaluating} || + or {self.accelerator.start_predicting} || FLOW + | || + {self.run_stage} || | || DIRECTION - {self.run_train} or || - {self.run_evaluation} or || - {self.run_predict} || + {self.run_train} || + or {self.run_evaluation} || + or {self.run_predict} || | || results \/ This is used to guide readers to the core loops: train, test, predict. @@ -516,13 +518,13 @@ def dispatch(self): else: self.accelerator.start_training(self) - def on_run_stage_setup(self): + def _on_run_stage_setup(self): self.profiler.setup(local_rank=self.local_rank if self.world_size > 1 else None, log_dir=self.log_dir) def run_stage(self): results = None - self.on_run_stage_setup() + self._on_run_stage_setup() if self.evaluating: results = self.run_evaluate() From 1cf5a6422c2d5be6bb2df3bd36aa040c8ec015e2 Mon Sep 17 00:00:00 2001 From: tchaton Date: Mon, 22 Mar 2021 11:21:42 +0000 Subject: [PATCH 053/126] move variable to private --- pytorch_lightning/profiler/pytorch.py | 91 +++++++++++++-------------- 1 file changed, 45 insertions(+), 46 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index a5bbfffb4e6be..e81b79faec74f 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -177,36 +177,35 @@ def __init__( record_functions = self.__deprecation_check(profiled_functions, record_functions) self.output_fname = output_filename - self.record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) - self.sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" - self.group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) - self.row_limit = row_limit - self.emit_nvtx = emit_nvtx - self.export_to_chrome = export_to_chrome - self.path_to_export_trace = path_to_export_trace - self.record_module_names = record_module_names - self.lightning_module = None # set by ProfilerConnector - self.register = None - self.profiler_kwargs = profiler_kwargs - self.profiler = None + self.profiler: Optional[_PROFILER] = None + self.function_events: Optional[EventList] = None + + self._record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) + self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" + self._group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) + self._row_limit = row_limit + self._emit_nvtx = emit_nvtx + self._export_to_chrome = export_to_chrome + self._path_to_export_trace = path_to_export_trace + self._record_module_names = record_module_names + self._lightning_module = None # set by ProfilerConnector + self._register = None + self._profiler_kwargs = profiler_kwargs self._parent_profiler = None + self._recording_map: Dict[str, record_function] = {} + self._profiler_instantiated: bool = False - if self.export_to_chrome and self.path_to_export_trace is None: + if self._export_to_chrome and self._path_to_export_trace is None: rank_zero_warn( "The exported trace would be saved locally as `path_to_export_trace` is None." " Note: Each functions will generate its own traced file." ) - if self.sort_by_key not in self.AVAILABLE_SORT_KEYS: + if self._sort_by_key not in self.AVAILABLE_SORT_KEYS: raise MisconfigurationException( - f"Found sort_by_key: {self.sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " + f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - self.recording_map: Dict[str, record_function] = {} - self.profiler: Optional[_PROFILER] = None - self.function_events: Optional[EventList] = None - self._profiler_instantiated: bool = False - super().__init__(output_filename=output_filename, local_rank=local_rank) def __deprecation_check(self, profiled_functions: List[str] = [], record_functions: List[str] = []) -> List[str]: @@ -235,8 +234,8 @@ def on_train_start(self, local_rank: Optional[int] = None, log_dir: Optional[str # if the user didn't provide `path_to_export_trace`, # set it as TensorBoardLogger log_dir if exists - if self.path_to_export_trace is None: - self.path_to_export_trace = log_dir + if self._path_to_export_trace is None: + self._path_to_export_trace = log_dir # when logging to `log.info`, only perform profiling on rank 0 if local_rank is not None and local_rank > 0 and self.output_fname is None: @@ -250,7 +249,7 @@ def _rank_zero_only_wrap(self) -> None: def start(self, action_name: str) -> None: if not self._profiler_instantiated and action_name in ( - list(self.START_RECORD_FUNCTIONS) + list(self.record_functions) + list(self.START_RECORD_FUNCTIONS) + list(self._record_functions) ): # close profiler if it is already opened @@ -267,31 +266,31 @@ def start(self, action_name: str) -> None: self._profiler_instantiated = True - if self.record_module_names and self.lightning_module is not None: - self.register = RegisterRecordFunction(self.lightning_module) - self.register.__enter__() + if self._record_module_names and self._lightning_module is not None: + self._register = RegisterRecordFunction(self._lightning_module) + self._register.__enter__() if ( - self._profiler_instantiated and action_name in self.record_functions - and action_name not in self.recording_map + self._profiler_instantiated and action_name in self._record_functions + and action_name not in self._recording_map ): recording = record_function(action_name) recording.__enter__() - self.recording_map[action_name] = recording + self._recording_map[action_name] = recording def stop(self, action_name: str) -> None: - if action_name in self.recording_map: - self.recording_map[action_name].__exit__(None, None, None) - del self.recording_map[action_name] + if action_name in self._recording_map: + self._recording_map[action_name].__exit__(None, None, None) + del self._recording_map[action_name] def summary(self) -> str: - if not self.profiler_kwargs.get("enabled", True): + if not self._profiler_kwargs.get("enabled", True): return "" local_rank = 0 if self.local_rank is None else self.local_rank self.profiler.__exit__(None, None, None) - if not self.emit_nvtx: + if not self._emit_nvtx: self.function_events = self.profiler.function_events self.profiler = None self._profiler_instantiated = False @@ -300,21 +299,21 @@ def summary(self) -> str: self._parent_profiler.__exit__(None, None, None) self._parent_profiler = None - if self.register is not None: - self.register.__exit__(None, None, None) + if self._register is not None: + self._register.__exit__(None, None, None) - if self.emit_nvtx: + if self._emit_nvtx: return "" - if self.export_to_chrome: + if self._export_to_chrome: filename = f"{local_rank}_trace.json" path_to_trace = ( - filename if self.path_to_export_trace is None else os.path.join(self.path_to_export_trace, filename) + filename if self._path_to_export_trace is None else os.path.join(self._path_to_export_trace, filename) ) self.function_events.export_chrome_trace(path_to_trace) - data = self.function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) - table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) + data = self.function_events.key_averages(group_by_input_shapes=self._group_by_input_shapes) + table = data.table(sort_by=self._sort_by_key, row_limit=self._row_limit) recorded_stats = {} recorded_stats["records"] = table @@ -322,7 +321,7 @@ def summary(self) -> str: return self.stats_to_str(recorded_stats) def _create_profilers(self) -> None: - if self.emit_nvtx: + if self._emit_nvtx: self._parent_profiler = self._create_profiler(torch.cuda.profiler.profile) self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) else: @@ -331,7 +330,7 @@ def _create_profilers(self) -> None: def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters - kwargs = {k: v for k, v in self.profiler_kwargs.items() if k in init_parameters} + kwargs = {k: v for k, v in vars(self).items() if k in init_parameters} return profiler(**kwargs) def teardown(self): @@ -342,10 +341,10 @@ def teardown(self): self._parent_profiler.__exit__(None, None, None) self._parent_profiler = None - if self.register is not None: - self.register.__exit__(None, None, None) + if self._register is not None: + self._register.__exit__(None, None, None) - for record in self.recording_map.values(): + for record in self._recording_map.values(): record.__exit__(None, None, None) super().teardown() From a05acdd02a523fbaa880222e203ffc1d6935c1e6 Mon Sep 17 00:00:00 2001 From: tchaton Date: Mon, 22 Mar 2021 12:29:38 +0000 Subject: [PATCH 054/126] remove trace --- 0_trace.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 0_trace.json diff --git a/0_trace.json b/0_trace.json deleted file mode 100644 index 2b9487adf83a1..0000000000000 --- a/0_trace.json +++ /dev/null @@ -1 +0,0 @@ -[{"name": "aten::empty", "ph": "X", "ts": 434.706, "dur": 4.123999999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::random_", "ph": "X", "ts": 460.465, "dur": 8.160000000000025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::is_floating_point", "ph": "X", "ts": 517.229, "dur": 0.5319999999999254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::item", "ph": "X", "ts": 521.148, "dur": 4.944999999999936, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_local_scalar_dense", "ph": "X", "ts": 523.151, "dur": 2.3920000000000528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 550.11, "dur": 6.506999999999948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 552.022, "dur": 1.8149999999999409, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 555.346, "dur": 0.8869999999999436, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 570.759, "dur": 90.41200000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 572.027, "dur": 1.2229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 590.516, "dur": 7.359000000000037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 593.307, "dur": 1.2479999999999336, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 611.293, "dur": 18.946000000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 614.671, "dur": 2.647999999999911, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 615.849, "dur": 0.8669999999999618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 618.48, "dur": 10.204999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 620.28, "dur": 7.537000000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 621.824, "dur": 0.7570000000000618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 624.749, "dur": 1.7419999999999618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 673.509, "dur": 3.905999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 674.565, "dur": 1.2449999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 676.664, "dur": 0.39999999999997726, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 682.945, "dur": 136.89499999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 683.766, "dur": 0.9970000000000709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 719.439, "dur": 0.6900000000000546, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 756.527, "dur": 31.145999999999958, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 758.133, "dur": 7.706999999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 760.317, "dur": 3.59699999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 761.541, "dur": 1.6059999999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 767.014, "dur": 19.521999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 769.084, "dur": 0.7690000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 771.655, "dur": 2.4840000000000373, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 773.009, "dur": 0.5760000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 776.425, "dur": 4.753000000000043, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 828.453, "dur": 4.322999999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 829.445, "dur": 1.54099999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 831.966, "dur": 0.42200000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 838.564, "dur": 41.33800000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 839.371, "dur": 0.9470000000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 849.209, "dur": 4.100000000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 850.949, "dur": 0.6450000000000955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 860.703, "dur": 12.302999999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 862.545, "dur": 1.7549999999999955, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 863.391, "dur": 0.5710000000000264, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 865.157, "dur": 6.403999999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 866.217, "dur": 4.831000000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 867.16, "dur": 0.5800000000000409, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 869.225, "dur": 0.8859999999999673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 889.918, "dur": 3.3379999999999654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 890.823, "dur": 0.9640000000000555, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 892.58, "dur": 0.34199999999998454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 897.93, "dur": 94.33900000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 898.695, "dur": 0.9339999999999691, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 923.365, "dur": 0.45899999999994634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 947.06, "dur": 21.027000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 947.97, "dur": 5.706000000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 949.398, "dur": 2.715000000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 950.388, "dur": 1.0149999999999864, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 954.471, "dur": 12.812000000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 955.993, "dur": 0.6559999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 957.74, "dur": 2.1480000000000246, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 958.84, "dur": 0.5109999999999673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 961.648, "dur": 3.4529999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1000.167, "dur": 3.5639999999999645, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1001.099, "dur": 1.1089999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1002.998, "dur": 0.39599999999995816, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1009.29, "dur": 37.63800000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1010.081, "dur": 0.8550000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1019.094, "dur": 3.8279999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1020.609, "dur": 0.6329999999999245, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1029.302, "dur": 11.473000000000184, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1030.923, "dur": 1.6800000000000637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1031.694, "dur": 0.5730000000000928, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1033.286, "dur": 6.272999999999911, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1034.109, "dur": 4.879000000000133, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1035.085, "dur": 0.5909999999998945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1037.16, "dur": 0.9789999999998145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1056.355, "dur": 3.286000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1057.224, "dur": 1.0230000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1059.027, "dur": 0.2899999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1064.272, "dur": 89.09699999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1065.047, "dur": 1.0619999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1087.371, "dur": 0.4199999999998454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1109.42, "dur": 20.649999999999864, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1110.287, "dur": 5.696999999999889, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1111.71, "dur": 2.7180000000000746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1112.753, "dur": 0.9960000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1116.841, "dur": 12.46400000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1118.372, "dur": 0.6829999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1120.036, "dur": 2.2329999999999472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1121.182, "dur": 0.58400000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1124.03, "dur": 3.07100000000014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1161.195, "dur": 3.6690000000000964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1162.097, "dur": 1.2419999999999618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1164.178, "dur": 0.36799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1170.367, "dur": 37.63300000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1171.146, "dur": 1.0389999999999873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1180.298, "dur": 3.80600000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1181.921, "dur": 0.6009999999998854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1190.349, "dur": 11.489000000000033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1192.141, "dur": 1.6189999999999145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1192.914, "dur": 0.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1194.557, "dur": 6.007000000000062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1195.411, "dur": 4.643000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1196.459, "dur": 0.6029999999998381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1198.432, "dur": 0.7950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1217.402, "dur": 3.449000000000069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1218.316, "dur": 1.0480000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1220.182, "dur": 0.33999999999991815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1225.479, "dur": 86.24800000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1226.219, "dur": 0.9259999999999309, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1247.952, "dur": 0.4190000000000964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1268.589, "dur": 20.205000000000155, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1269.54, "dur": 5.414999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1270.949, "dur": 2.550999999999931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1271.909, "dur": 0.9420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1275.697, "dur": 12.211000000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1277.15, "dur": 0.7719999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1278.903, "dur": 2.1089999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1279.988, "dur": 0.5190000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1282.728, "dur": 3.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1319.262, "dur": 3.6390000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1320.131, "dur": 1.2089999999998327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1322.158, "dur": 0.40300000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1328.439, "dur": 36.46799999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1329.227, "dur": 0.9669999999998709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1338.032, "dur": 3.8150000000000546, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1339.595, "dur": 0.6349999999999909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1347.831, "dur": 10.961000000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1349.438, "dur": 1.5480000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1350.165, "dur": 0.4819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1351.73, "dur": 5.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1352.612, "dur": 4.435999999999922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1353.569, "dur": 0.5699999999999363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1355.509, "dur": 0.7400000000000091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1374.249, "dur": 3.5260000000000673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1375.186, "dur": 1.0140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1377.103, "dur": 0.3389999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1382.386, "dur": 85.54500000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1383.139, "dur": 0.9110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1404.399, "dur": 0.42000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1425.156, "dur": 20.100000000000136, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1426.058, "dur": 5.403999999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1427.504, "dur": 2.5440000000000964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1428.487, "dur": 0.9489999999998417, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1432.219, "dur": 12.21699999999987, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1433.673, "dur": 0.7080000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1435.322, "dur": 2.145000000000209, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1436.411, "dur": 0.47199999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1439.186, "dur": 3.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1500.831, "dur": 24.46400000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1503.028, "dur": 2.93100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1524.327, "dur": 0.5489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1534.533, "dur": 44.080000000000155, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1535.513, "dur": 1.4570000000001073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1548.337, "dur": 4.338999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1550.017, "dur": 0.68100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1560.411, "dur": 11.02800000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1562.022, "dur": 1.6490000000001146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1562.736, "dur": 0.5769999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1564.364, "dur": 5.724999999999909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1565.158, "dur": 4.463000000000193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1566.117, "dur": 0.5080000000000382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1567.953, "dur": 0.8730000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1588.816, "dur": 2.951999999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1589.639, "dur": 0.8200000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1591.213, "dur": 0.29099999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1596.266, "dur": 87.36400000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1596.918, "dur": 0.7820000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1619.789, "dur": 0.36599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1641.765, "dur": 19.10499999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1642.588, "dur": 5.013000000000147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1643.955, "dur": 2.372000000000071, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1644.788, "dur": 0.9680000000000746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1648.332, "dur": 11.74499999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1649.628, "dur": 0.5900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1651.148, "dur": 1.6770000000001346, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1652.052, "dur": 0.39000000000010004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1654.28, "dur": 3.3980000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1690.671, "dur": 3.1849999999999454, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1691.453, "dur": 1.1000000000001364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1693.255, "dur": 0.32799999999997453, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1698.484, "dur": 31.961000000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1699.129, "dur": 0.8820000000000618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1707.192, "dur": 3.189000000000078, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1708.47, "dur": 0.51299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1715.897, "dur": 9.298000000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1717.257, "dur": 1.3919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1717.936, "dur": 0.4450000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1719.241, "dur": 4.9500000000000455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1719.91, "dur": 3.870999999999867, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1720.757, "dur": 0.5670000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1722.455, "dur": 0.6430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1738.627, "dur": 2.9270000000001346, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1739.383, "dur": 0.9099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1741.009, "dur": 0.29099999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1745.566, "dur": 75.23700000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1746.146, "dur": 0.7080000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1766.24, "dur": 0.3710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1784.935, "dur": 16.466000000000122, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1785.614, "dur": 4.2970000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1786.758, "dur": 2.0190000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1787.536, "dur": 0.7300000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1790.594, "dur": 10.121999999999844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1791.692, "dur": 0.5909999999998945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1793.016, "dur": 1.6449999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1793.872, "dur": 0.4179999999998927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1796.094, "dur": 2.716999999999871, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1827.141, "dur": 3.1340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1827.874, "dur": 1.1009999999998854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1829.695, "dur": 0.3170000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1834.804, "dur": 30.740999999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1835.421, "dur": 0.7290000000000418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1842.935, "dur": 3.171000000000049, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1844.225, "dur": 0.49700000000007094, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1851.386, "dur": 9.058999999999969, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1852.72, "dur": 1.3079999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1853.334, "dur": 0.4379999999998745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1854.614, "dur": 4.867999999999938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1855.307, "dur": 3.785000000000082, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1856.191, "dur": 0.4839999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1857.769, "dur": 0.6459999999999582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1873.163, "dur": 2.747000000000071, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1873.897, "dur": 0.8079999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1875.354, "dur": 0.3129999999998745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 1879.652, "dur": 70.70799999999986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1880.256, "dur": 0.7329999999999472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 1898.54, "dur": 0.38400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 1915.907, "dur": 16.055000000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 1916.625, "dur": 4.066000000000031, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 1917.65, "dur": 1.9449999999999363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1918.391, "dur": 0.7139999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 1921.327, "dur": 9.914999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1922.497, "dur": 0.5729999999998654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 1923.766, "dur": 1.6649999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1924.685, "dur": 0.3630000000000564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 1926.799, "dur": 2.6569999999999254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 1956.486, "dur": 2.974999999999909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1957.205, "dur": 0.9900000000000091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 1958.87, "dur": 0.3380000000001928, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 1963.97, "dur": 39.884000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1964.594, "dur": 8.827999999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 1980.705, "dur": 3.2480000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1982.03, "dur": 0.5119999999999436, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 1989.16, "dur": 9.352999999999838, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 1990.509, "dur": 1.36200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 1991.165, "dur": 0.4519999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 1992.478, "dur": 4.9529999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 1993.182, "dur": 3.8379999999999654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 1994.0, "dur": 0.49299999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 1995.689, "dur": 0.696999999999889, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2011.54, "dur": 26.585000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2012.348, "dur": 0.7390000000000327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2037.463, "dur": 0.3569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2043.003, "dur": 91.11300000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2043.78, "dur": 0.8710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2068.687, "dur": 0.45600000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2090.111, "dur": 20.827000000000226, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2090.912, "dur": 5.498000000000047, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2092.391, "dur": 2.5470000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2093.396, "dur": 0.9159999999997126, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2097.207, "dur": 12.815000000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2098.721, "dur": 0.8049999999998363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2100.592, "dur": 2.048999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2101.703, "dur": 0.47699999999986176, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2104.479, "dur": 3.356999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2141.741, "dur": 3.5279999999997926, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2142.653, "dur": 1.0850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2144.542, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2150.69, "dur": 74.5340000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2151.445, "dur": 0.8379999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2160.316, "dur": 3.8090000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2161.831, "dur": 0.6050000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2191.711, "dur": 19.952000000000226, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2195.514, "dur": 3.786999999999807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2196.631, "dur": 1.58600000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2200.428, "dur": 9.54800000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2201.673, "dur": 7.7140000000003965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2203.475, "dur": 1.1550000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2206.583, "dur": 1.6269999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2240.95, "dur": 4.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2242.158, "dur": 1.6050000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2245.023, "dur": 0.4420000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2252.617, "dur": 116.64199999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2253.583, "dur": 1.05600000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2286.593, "dur": 0.4670000000000982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2315.323, "dur": 25.47900000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2316.536, "dur": 6.682999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2318.132, "dur": 3.007999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2319.232, "dur": 1.2289999999998145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2324.108, "dur": 15.694999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2325.77, "dur": 0.9929999999999382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2327.913, "dur": 2.369999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2329.262, "dur": 0.5229999999996835, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2332.34, "dur": 4.4909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2378.306, "dur": 4.036999999999807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2379.328, "dur": 1.3940000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2381.599, "dur": 0.4169999999999163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2388.471, "dur": 41.375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2389.303, "dur": 0.9570000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2399.634, "dur": 4.405999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2401.449, "dur": 0.7210000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2411.467, "dur": 11.866999999999734, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2413.167, "dur": 1.7789999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2414.009, "dur": 0.5850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2415.72, "dur": 6.2590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2416.695, "dur": 4.757000000000062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2417.667, "dur": 0.5750000000002728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2419.703, "dur": 0.8330000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2439.854, "dur": 3.423000000000229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2440.79, "dur": 0.9600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2442.655, "dur": 0.31399999999985084, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2447.967, "dur": 93.93899999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2448.732, "dur": 0.8650000000002365, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2473.533, "dur": 0.47000000000025466, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2496.437, "dur": 21.09400000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2497.408, "dur": 5.8090000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2498.875, "dur": 2.744999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2499.926, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2504.013, "dur": 12.68100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2505.438, "dur": 0.7559999999998581, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2507.147, "dur": 2.032000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2508.256, "dur": 0.43600000000014916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2510.87, "dur": 3.419000000000324, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2549.959, "dur": 3.824000000000069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2550.865, "dur": 1.3079999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2553.057, "dur": 0.37900000000036016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2559.233, "dur": 38.71499999999969, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2560.129, "dur": 0.9760000000001128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2569.632, "dur": 4.117999999999938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2571.354, "dur": 0.6090000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2580.376, "dur": 11.238999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2581.99, "dur": 1.6000000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2582.759, "dur": 0.48900000000003274, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2584.33, "dur": 6.041000000000167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2585.253, "dur": 4.65099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2586.194, "dur": 0.6199999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2588.22, "dur": 0.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2607.56, "dur": 3.262000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2608.448, "dur": 0.8920000000002801, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2610.189, "dur": 0.3140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2615.492, "dur": 95.64199999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2616.241, "dur": 0.9099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2639.38, "dur": 0.4099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2660.435, "dur": 26.63000000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2661.376, "dur": 5.481999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2662.813, "dur": 2.668999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2663.756, "dur": 1.1260000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2667.666, "dur": 18.36499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2669.047, "dur": 0.69399999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2670.661, "dur": 7.929999999999836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2677.602, "dur": 0.5030000000001564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2680.384, "dur": 3.217999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2718.924, "dur": 3.6210000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2719.847, "dur": 1.113999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2721.768, "dur": 0.4290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2728.182, "dur": 37.58699999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2728.974, "dur": 0.9649999999996908, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2738.125, "dur": 3.880999999999858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2739.773, "dur": 0.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2748.278, "dur": 11.194000000000415, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2749.853, "dur": 1.6059999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2750.563, "dur": 0.5540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2752.187, "dur": 5.969000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2753.12, "dur": 4.535000000000309, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2754.06, "dur": 0.5610000000001492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2756.031, "dur": 0.7860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2775.003, "dur": 3.2529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2775.899, "dur": 0.8640000000000327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2777.601, "dur": 0.3309999999996762, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2782.725, "dur": 86.07500000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2783.442, "dur": 0.8539999999998145, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2805.403, "dur": 0.42000000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2826.371, "dur": 19.817000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2827.278, "dur": 5.3659999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2828.635, "dur": 2.576999999999771, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2829.573, "dur": 0.9610000000002401, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2833.435, "dur": 11.880999999999858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2834.869, "dur": 0.7689999999997781, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2836.57, "dur": 1.9089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2837.592, "dur": 0.4339999999997417, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 2840.169, "dur": 2.9900000000002365, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2876.209, "dur": 3.744000000000142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2877.159, "dur": 1.2199999999998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2879.176, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 2885.3, "dur": 36.80699999999979, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2886.071, "dur": 0.7960000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 2894.716, "dur": 3.769999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2896.286, "dur": 0.6079999999997199, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 2904.732, "dur": 11.396999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 2906.411, "dur": 1.655999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2907.147, "dur": 0.5329999999999018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 2908.827, "dur": 6.0219999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 2909.725, "dur": 4.570999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2910.628, "dur": 0.5539999999996326, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 2912.572, "dur": 0.9169999999999163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 2931.202, "dur": 3.1799999999998363, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2932.016, "dur": 0.9229999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 2933.764, "dur": 0.30999999999994543, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 2938.944, "dur": 90.16300000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2939.669, "dur": 0.7310000000002219, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 2961.508, "dur": 0.3920000000002801, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 2982.033, "dur": 24.182000000000244, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 2982.908, "dur": 5.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 2984.251, "dur": 2.574999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2985.249, "dur": 0.9370000000003529, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 2988.962, "dur": 16.45600000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 2994.388, "dur": 0.7899999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 2996.2, "dur": 2.062000000000353, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 2997.288, "dur": 0.5019999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3000.107, "dur": 3.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3036.817, "dur": 3.6770000000001346, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3037.661, "dur": 1.2300000000000182, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3039.74, "dur": 0.4070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3045.819, "dur": 37.0590000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3046.645, "dur": 0.8229999999998654, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3055.536, "dur": 3.869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3057.143, "dur": 0.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3065.703, "dur": 11.047000000000025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3067.303, "dur": 1.6539999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3068.065, "dur": 0.5109999999999673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3069.676, "dur": 5.7970000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3070.585, "dur": 4.373999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3071.493, "dur": 0.5370000000002619, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3073.423, "dur": 0.7590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3091.856, "dur": 3.2399999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3092.692, "dur": 0.9070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3094.389, "dur": 0.3579999999997199, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3099.594, "dur": 85.25500000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3100.37, "dur": 0.8230000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3121.959, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3143.036, "dur": 19.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3143.895, "dur": 5.501000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3145.311, "dur": 2.5029999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3146.282, "dur": 0.9119999999998072, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3150.171, "dur": 11.635999999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3151.586, "dur": 0.6480000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3153.218, "dur": 2.050999999999931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3154.295, "dur": 0.4940000000001419, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3156.83, "dur": 2.8890000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3192.383, "dur": 3.5020000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3193.209, "dur": 1.0850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3195.141, "dur": 0.40599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3201.126, "dur": 87.69799999999987, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3201.983, "dur": 0.9489999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3210.943, "dur": 3.8399999999996908, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3212.57, "dur": 0.5869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3220.749, "dur": 61.06800000000021, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3222.358, "dur": 50.98999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3223.097, "dur": 0.5119999999997162, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3274.305, "dur": 6.138000000000375, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3275.34, "dur": 4.614999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3276.242, "dur": 0.5869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3278.182, "dur": 0.9280000000003383, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3298.445, "dur": 3.418999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3299.324, "dur": 0.9760000000001128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3301.151, "dur": 0.3320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3306.43, "dur": 89.6890000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3307.178, "dur": 0.7449999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3328.908, "dur": 0.42200000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3349.398, "dur": 23.786999999999807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3350.226, "dur": 5.292999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3351.573, "dur": 2.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3352.567, "dur": 0.9290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3356.31, "dur": 15.927999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3361.429, "dur": 0.7860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3363.255, "dur": 2.013999999999669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3364.324, "dur": 0.45899999999983265, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3366.88, "dur": 3.0789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3403.946, "dur": 3.731999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3404.827, "dur": 1.2169999999996435, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3406.884, "dur": 0.39600000000018554, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3412.985, "dur": 36.44399999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3413.773, "dur": 0.8350000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3422.783, "dur": 3.84900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3424.415, "dur": 0.612999999999829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3432.694, "dur": 10.791999999999916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3434.326, "dur": 1.5670000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3435.071, "dur": 0.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3436.611, "dur": 5.644999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3437.507, "dur": 4.2150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3438.369, "dur": 0.5270000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3440.217, "dur": 0.7519999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3458.453, "dur": 3.2530000000001564, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3459.32, "dur": 0.918999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3461.078, "dur": 0.29899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3466.078, "dur": 84.4050000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3466.858, "dur": 0.8679999999999382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3488.646, "dur": 0.3799999999996544, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3508.991, "dur": 19.52500000000009, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3509.858, "dur": 5.291999999999916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3511.244, "dur": 2.5039999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3512.205, "dur": 0.8960000000001855, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3515.926, "dur": 11.789000000000215, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3517.383, "dur": 0.7390000000000327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3519.034, "dur": 2.000999999999749, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3520.074, "dur": 0.4919999999997344, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3522.625, "dur": 2.951000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3558.012, "dur": 3.4980000000000473, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3558.915, "dur": 1.1469999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3560.804, "dur": 0.36400000000003274, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3566.832, "dur": 39.728000000000065, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3567.634, "dur": 0.7640000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3576.313, "dur": 3.798999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3577.911, "dur": 0.61200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3586.018, "dur": 14.230000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3587.626, "dur": 1.606999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3588.358, "dur": 0.4859999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3589.945, "dur": 8.972999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3590.862, "dur": 7.5340000000001055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3591.753, "dur": 3.494999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3596.699, "dur": 0.9149999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3615.715, "dur": 3.212999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3616.626, "dur": 0.9179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3618.325, "dur": 0.2980000000002292, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3623.531, "dur": 83.56500000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3624.344, "dur": 0.7640000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3645.346, "dur": 0.387000000000171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3665.899, "dur": 19.320999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3666.746, "dur": 5.230000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3668.143, "dur": 2.423999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3669.06, "dur": 0.88799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3672.747, "dur": 11.684999999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3674.194, "dur": 0.6219999999998436, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3675.837, "dur": 2.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3676.878, "dur": 0.49699999999984357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3679.445, "dur": 2.8409999999998945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3714.597, "dur": 3.586999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3715.459, "dur": 1.1730000000002292, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3717.468, "dur": 0.3830000000002656, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3723.576, "dur": 35.80000000000018, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3724.322, "dur": 0.8139999999998508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3732.804, "dur": 3.7529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3734.395, "dur": 0.581000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3742.514, "dur": 10.769999999999982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3744.115, "dur": 1.6420000000002801, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3744.879, "dur": 0.48500000000012733, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3746.506, "dur": 5.561000000000149, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3747.408, "dur": 4.166999999999916, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3748.23, "dur": 0.5830000000000837, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3750.115, "dur": 0.7130000000001928, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3768.161, "dur": 3.306999999999789, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3769.025, "dur": 1.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3770.852, "dur": 0.3160000000002583, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3776.026, "dur": 81.9670000000001, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3776.775, "dur": 0.7779999999997926, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3797.548, "dur": 0.3710000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3817.361, "dur": 18.98199999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3818.178, "dur": 5.108000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3819.489, "dur": 2.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3820.459, "dur": 0.8800000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3824.022, "dur": 11.514000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3825.448, "dur": 0.7029999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3827.056, "dur": 1.9229999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3828.073, "dur": 0.4450000000001637, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3830.563, "dur": 2.869999999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3865.57, "dur": 3.4769999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3866.419, "dur": 1.1040000000002692, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3868.261, "dur": 0.4329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 3874.434, "dur": 38.97199999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3875.245, "dur": 0.7409999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 3883.707, "dur": 3.71100000000024, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3885.229, "dur": 0.5840000000002874, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 3893.21, "dur": 13.746000000000095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 3894.773, "dur": 1.6159999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3895.581, "dur": 0.5029999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 3897.09, "dur": 8.57400000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 3897.965, "dur": 7.148999999999887, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3898.829, "dur": 3.30199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 3903.562, "dur": 0.7989999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 3922.471, "dur": 3.2649999999998727, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3923.364, "dur": 0.9470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 3925.106, "dur": 0.32199999999966167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 3930.286, "dur": 83.13799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3931.036, "dur": 0.8609999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 3952.32, "dur": 0.37199999999984357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 3972.559, "dur": 19.15199999999959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 3973.411, "dur": 5.291000000000167, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 3974.794, "dur": 2.492999999999938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3975.742, "dur": 0.9229999999997744, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 3979.444, "dur": 11.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 3980.82, "dur": 0.6209999999996398, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 3982.411, "dur": 1.9329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 3983.452, "dur": 0.42899999999963256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 3985.91, "dur": 2.881000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4020.872, "dur": 3.5350000000003092, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4021.827, "dur": 1.0669999999995525, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4023.692, "dur": 0.36799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 4029.711, "dur": 39.17300000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4030.54, "dur": 0.8420000000000982, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 4038.938, "dur": 3.837999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4040.573, "dur": 0.5779999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 4048.594, "dur": 10.507000000000062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 4050.198, "dur": 1.524000000000342, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4050.9, "dur": 0.5180000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 4052.418, "dur": 5.496000000000095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 4053.266, "dur": 4.135999999999967, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4054.065, "dur": 0.5320000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 4055.88, "dur": 0.7840000000001055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 4077.953, "dur": 3.2910000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4078.851, "dur": 0.9909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 4080.612, "dur": 0.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 4085.948, "dur": 1372.9770000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4086.67, "dur": 0.9409999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 4111.091, "dur": 0.40099999999983993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 4131.558, "dur": 32.238000000000284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 4132.449, "dur": 7.664999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 4133.778, "dur": 4.597999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4134.725, "dur": 2.92699999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 4141.286, "dur": 11.944999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 4142.659, "dur": 0.7390000000004875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 4144.325, "dur": 1.936000000000604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 4145.341, "dur": 0.4739999999992506, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 4147.933, "dur": 3.0590000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5474.022, "dur": 8.443000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5476.344, "dur": 3.44800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5481.146, "dur": 0.9499999999998181, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 5491.1, "dur": 60.90299999999934, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5492.18, "dur": 1.0039999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5505.682, "dur": 6.256000000000313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5508.611, "dur": 0.8599999999996726, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5522.638, "dur": 21.261000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5529.922, "dur": 2.117000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5530.944, "dur": 0.6899999999995998, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5533.031, "dur": 9.42699999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5534.648, "dur": 7.030999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5535.983, "dur": 0.7550000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5538.601, "dur": 1.9180000000005748, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5564.599, "dur": 5.498999999999796, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5567.247, "dur": 1.2119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5569.411, "dur": 0.3500000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5575.506, "dur": 119.02899999999954, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5576.256, "dur": 1.0619999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5608.998, "dur": 0.6690000000007785, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 5637.345, "dur": 30.396999999999935, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5638.623, "dur": 8.217000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5640.46, "dur": 3.095999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5641.671, "dur": 1.1719999999995707, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5647.922, "dur": 18.89800000000014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5649.798, "dur": 0.8240000000005239, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5651.843, "dur": 2.462999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5653.198, "dur": 0.5619999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5656.857, "dur": 5.585000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5703.01, "dur": 5.648000000000138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5705.608, "dur": 1.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5707.994, "dur": 0.3600000000005821, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 5714.733, "dur": 42.51999999999953, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5715.505, "dur": 0.9570000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5725.405, "dur": 4.192000000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5727.226, "dur": 0.6289999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5737.043, "dur": 13.551000000000386, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5738.758, "dur": 3.462999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5741.256, "dur": 0.61200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5742.989, "dur": 6.145000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5743.852, "dur": 4.748000000000502, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5744.796, "dur": 0.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5746.859, "dur": 0.8729999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5766.83, "dur": 4.842999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5767.757, "dur": 0.9120000000002619, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5770.98, "dur": 0.3720000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5776.722, "dur": 93.61999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5777.468, "dur": 0.8450000000002547, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5801.639, "dur": 0.4290000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 5823.757, "dur": 22.557999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5824.643, "dur": 5.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5826.057, "dur": 2.7070000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5827.112, "dur": 1.001999999999498, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 5832.475, "dur": 12.922999999999774, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5834.048, "dur": 0.7800000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 5835.915, "dur": 2.1019999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5837.051, "dur": 0.4789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 5839.745, "dur": 3.36200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5878.097, "dur": 5.543999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5879.013, "dur": 1.2420000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5881.117, "dur": 2.1799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 5889.594, "dur": 40.86499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5890.415, "dur": 1.0280000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 5900.047, "dur": 4.1030000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5901.764, "dur": 0.6199999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 5910.507, "dur": 13.155999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 5912.14, "dur": 1.701999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5912.955, "dur": 0.5140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 5916.276, "dur": 6.132000000000517, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 5917.192, "dur": 4.6899999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5918.148, "dur": 0.6369999999997162, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 5920.158, "dur": 0.8889999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 5939.772, "dur": 3.4200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5940.672, "dur": 1.0489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 5942.557, "dur": 0.3320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 5949.379, "dur": 90.90499999999975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 5950.091, "dur": 0.9219999999995707, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 5972.54, "dur": 0.4080000000003565, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 5994.561, "dur": 22.51000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 5995.465, "dur": 5.556999999999789, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 5996.922, "dur": 2.611000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 5997.948, "dur": 0.9809999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6001.782, "dur": 14.376000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6003.195, "dur": 2.52599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6006.77, "dur": 2.0979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6007.856, "dur": 0.45200000000022555, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6010.613, "dur": 3.1989999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6048.085, "dur": 3.66399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6049.008, "dur": 1.1909999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6051.107, "dur": 0.3350000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6059.322, "dur": 39.8119999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6060.076, "dur": 0.9499999999998181, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6069.384, "dur": 3.9769999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6071.019, "dur": 0.6189999999996871, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6079.684, "dur": 13.034999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6081.317, "dur": 1.6260000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6082.08, "dur": 0.5489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6083.623, "dur": 7.792000000000371, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6084.506, "dur": 6.393999999999323, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6087.236, "dur": 0.6300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6089.237, "dur": 0.8670000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6108.351, "dur": 3.3250000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6109.283, "dur": 0.9499999999998181, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6111.08, "dur": 0.29500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6116.334, "dur": 90.25600000000031, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6117.107, "dur": 2.657000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6141.043, "dur": 0.3780000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6161.941, "dur": 21.695999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6162.834, "dur": 5.253000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6164.161, "dur": 2.48700000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6165.125, "dur": 0.9260000000003856, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6168.858, "dur": 13.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6170.247, "dur": 0.7159999999994398, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6171.989, "dur": 3.7470000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6174.665, "dur": 0.5270000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6177.408, "dur": 3.1340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6214.453, "dur": 3.6679999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6215.4, "dur": 1.1880000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6217.424, "dur": 0.3760000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6223.729, "dur": 41.33399999999983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6224.623, "dur": 2.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6235.509, "dur": 3.9970000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6237.165, "dur": 0.5960000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6245.59, "dur": 13.043999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6247.351, "dur": 1.581000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6248.094, "dur": 0.5289999999995416, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6249.693, "dur": 7.6599999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6250.595, "dur": 6.210000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6251.546, "dur": 0.5639999999993961, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6255.108, "dur": 0.8629999999993743, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6274.263, "dur": 3.3919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6275.192, "dur": 0.8850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6277.003, "dur": 0.34900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6282.382, "dur": 91.22900000000027, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6283.148, "dur": 0.76299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6305.186, "dur": 2.155999999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6328.256, "dur": 21.904999999999745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6329.156, "dur": 5.399999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6330.596, "dur": 2.4200000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6331.54, "dur": 0.9329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6335.323, "dur": 13.951000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6336.773, "dur": 0.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6338.394, "dur": 3.649999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6339.495, "dur": 0.4359999999996944, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6343.777, "dur": 3.2460000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6381.448, "dur": 3.5839999999998327, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6382.424, "dur": 1.168999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6384.364, "dur": 0.33800000000064756, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6390.486, "dur": 40.78300000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6391.293, "dur": 0.9190000000007785, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6400.294, "dur": 5.833000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6403.804, "dur": 0.6459999999997308, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6412.325, "dur": 12.610000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6414.038, "dur": 1.6300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6414.793, "dur": 0.48800000000028376, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6416.37, "dur": 7.3530000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6417.236, "dur": 5.984000000000378, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6418.164, "dur": 0.6210000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6420.219, "dur": 0.8320000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6440.58, "dur": 3.318000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6441.511, "dur": 0.964999999999236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6443.286, "dur": 0.3010000000003856, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6448.563, "dur": 88.53600000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6449.328, "dur": 0.8709999999991851, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6471.264, "dur": 0.3989999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6491.894, "dur": 22.61999999999989, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6494.548, "dur": 5.302999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6495.843, "dur": 2.6220000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6496.827, "dur": 1.0489999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6500.608, "dur": 13.095000000000255, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6501.99, "dur": 0.7309999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6503.671, "dur": 2.0649999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6504.736, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6507.319, "dur": 3.0789999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6544.792, "dur": 3.639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6545.685, "dur": 1.2529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6547.745, "dur": 0.3569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6553.821, "dur": 40.485999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6554.523, "dur": 0.9610000000002401, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6563.655, "dur": 5.6340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6565.297, "dur": 0.5700000000006185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6575.539, "dur": 12.307999999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6577.195, "dur": 1.5410000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6577.944, "dur": 0.4919999999992797, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6579.427, "dur": 5.957000000000335, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6580.331, "dur": 4.545000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6581.244, "dur": 0.5960000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6583.273, "dur": 0.818000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6603.356, "dur": 3.3159999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6604.247, "dur": 1.0189999999993233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6606.013, "dur": 0.33100000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6611.166, "dur": 87.93499999999949, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6611.922, "dur": 0.9280000000007931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6633.462, "dur": 0.4169999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6654.195, "dur": 22.36200000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6655.073, "dur": 7.144999999999527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6656.456, "dur": 4.27599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6659.16, "dur": 0.9490000000005239, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6662.979, "dur": 11.639000000000124, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6664.35, "dur": 0.6679999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6665.991, "dur": 2.005000000000109, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6667.01, "dur": 0.47599999999965803, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6669.592, "dur": 2.92200000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6706.798, "dur": 3.574999999999818, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6707.687, "dur": 1.1739999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6709.71, "dur": 0.34400000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6715.784, "dur": 39.05200000000059, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6716.618, "dur": 0.9600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6725.519, "dur": 3.8040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6727.145, "dur": 0.5629999999991924, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6737.122, "dur": 11.232999999999265, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6738.739, "dur": 1.6450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6739.472, "dur": 0.5630000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6741.093, "dur": 5.9909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6741.961, "dur": 4.601999999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6742.858, "dur": 0.6170000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6744.866, "dur": 0.8440000000000509, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6765.491, "dur": 3.3100000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6766.351, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6768.145, "dur": 0.3349999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6773.53, "dur": 103.1260000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6774.274, "dur": 0.8239999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6795.483, "dur": 0.42699999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 6815.861, "dur": 23.26000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 6816.8, "dur": 8.65099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 6818.128, "dur": 4.141000000000531, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6819.141, "dur": 0.8960000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 6826.31, "dur": 12.03399999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6827.709, "dur": 0.7020000000002256, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 6829.474, "dur": 1.9349999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6830.517, "dur": 0.4279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 6833.022, "dur": 3.1109999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6884.22, "dur": 3.020999999999731, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6884.979, "dur": 1.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6886.691, "dur": 0.28099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 6891.817, "dur": 31.136000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6892.468, "dur": 0.63799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 6899.651, "dur": 3.1220000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6900.985, "dur": 0.5309999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 6907.408, "dur": 10.527000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 6910.184, "dur": 1.3009999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 6910.807, "dur": 0.41200000000026193, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 6912.055, "dur": 4.844000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 6912.786, "dur": 3.7070000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6913.538, "dur": 0.4790000000002692, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 6915.117, "dur": 0.6979999999994106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 6956.837, "dur": 4.862999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6957.766, "dur": 2.386000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 6961.013, "dur": 0.35900000000037835, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 6966.467, "dur": 86.9360000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 6967.225, "dur": 0.7909999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 6988.747, "dur": 0.43099999999958527, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7009.158, "dur": 21.73199999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7010.068, "dur": 7.092999999999847, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7011.41, "dur": 2.532000000000153, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7012.428, "dur": 0.9340000000001965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7018.006, "dur": 12.091999999999643, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7019.466, "dur": 0.6989999999996144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7021.141, "dur": 2.068000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7022.235, "dur": 0.4710000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7024.906, "dur": 3.04700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7061.066, "dur": 5.204000000000633, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7061.969, "dur": 2.7479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7065.611, "dur": 0.32999999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7071.906, "dur": 38.57800000000043, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7072.711, "dur": 0.8119999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7081.532, "dur": 3.88799999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7083.162, "dur": 0.6480000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7091.388, "dur": 12.641000000000531, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7093.043, "dur": 3.066000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7093.798, "dur": 1.9710000000004584, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7096.879, "dur": 5.850000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7097.776, "dur": 4.460000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7098.653, "dur": 0.6300000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7100.62, "dur": 0.8150000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7119.631, "dur": 4.902000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7120.548, "dur": 0.9440000000004147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7122.345, "dur": 1.8699999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7129.356, "dur": 391.2350000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7130.114, "dur": 0.8210000000008222, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7151.919, "dur": 0.44499999999970896, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7171.911, "dur": 322.39400000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7172.786, "dur": 5.41399999999976, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7174.131, "dur": 2.582999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7175.107, "dur": 0.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7179.003, "dur": 314.3070000000007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7480.823, "dur": 1.0599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7483.047, "dur": 2.236000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7484.214, "dur": 0.5600000000004002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7487.083, "dur": 3.47400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7529.109, "dur": 6.539999999999964, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7530.138, "dur": 1.1769999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7532.224, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7541.83, "dur": 42.439000000000306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7542.659, "dur": 0.9270000000005894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7552.458, "dur": 4.148000000000138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7554.188, "dur": 0.613999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7563.248, "dur": 14.502000000000407, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7564.997, "dur": 1.7150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7565.811, "dur": 0.5060000000003129, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7567.486, "dur": 8.969000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7570.88, "dur": 5.068000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7571.823, "dur": 0.6799999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7573.912, "dur": 0.8469999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7594.075, "dur": 3.19800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7594.955, "dur": 0.8930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7596.667, "dur": 0.295999999999367, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7601.914, "dur": 95.3680000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7605.111, "dur": 0.8930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7629.615, "dur": 0.4040000000004511, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7651.455, "dur": 22.658000000000357, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7652.388, "dur": 5.600000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7653.869, "dur": 2.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7654.911, "dur": 0.9949999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7658.75, "dur": 14.451000000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7660.202, "dur": 0.7469999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7664.078, "dur": 2.1779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7665.184, "dur": 0.5140000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7667.908, "dur": 3.0689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7705.06, "dur": 3.7799999999997453, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7705.976, "dur": 1.3370000000004438, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7708.104, "dur": 0.40899999999965075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7714.365, "dur": 42.12700000000041, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7717.367, "dur": 0.8329999999996289, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7726.664, "dur": 3.867000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7728.249, "dur": 0.6460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7736.586, "dur": 13.470999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7738.209, "dur": 1.6829999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7739.025, "dur": 0.4960000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7740.606, "dur": 8.252000000000407, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7741.45, "dur": 6.898000000000138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7742.324, "dur": 2.8140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7746.614, "dur": 0.829000000000633, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7765.991, "dur": 3.243000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7766.863, "dur": 0.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7768.587, "dur": 0.3329999999996289, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7773.843, "dur": 91.15599999999995, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7774.615, "dur": 0.7800000000006548, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7798.725, "dur": 0.4029999999993379, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7819.851, "dur": 22.577000000000226, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7820.742, "dur": 5.335000000000036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7822.063, "dur": 2.5979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7823.067, "dur": 0.9750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7826.843, "dur": 14.739000000000487, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7828.225, "dur": 0.6929999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7829.838, "dur": 4.637000000000626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7830.905, "dur": 3.0340000000005602, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 7836.21, "dur": 3.207999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7872.738, "dur": 3.5729999999994106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7873.667, "dur": 1.1569999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7875.652, "dur": 0.3720000000002983, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 7881.769, "dur": 42.60199999999986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7882.553, "dur": 0.8699999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 7894.378, "dur": 4.020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7896.049, "dur": 0.6559999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 7904.531, "dur": 13.404000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 7906.163, "dur": 1.594000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7906.888, "dur": 0.5540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 7908.427, "dur": 8.19800000000032, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 7909.278, "dur": 6.8149999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7910.215, "dur": 0.5500000000001819, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 7912.138, "dur": 3.0460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 7933.449, "dur": 3.2730000000001382, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7934.362, "dur": 1.0109999999995125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 7936.149, "dur": 0.26599999999962165, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 7941.257, "dur": 90.98500000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7941.965, "dur": 0.8379999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 7963.477, "dur": 0.4099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 7987.1, "dur": 22.518999999999323, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 7987.994, "dur": 5.552999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 7989.483, "dur": 2.6369999999997162, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7990.494, "dur": 0.967000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 7994.34, "dur": 14.381999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 7995.787, "dur": 0.6449999999995271, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 7997.378, "dur": 1.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 7998.411, "dur": 0.4639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8003.247, "dur": 3.1749999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8040.198, "dur": 3.7529999999997017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8041.109, "dur": 1.3019999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8043.242, "dur": 0.38699999999971624, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8049.522, "dur": 42.05799999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8050.23, "dur": 0.8850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8059.073, "dur": 6.639999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8063.329, "dur": 0.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8072.1, "dur": 13.212999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8073.693, "dur": 1.582999999999629, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8074.448, "dur": 0.5309999999999491, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8075.979, "dur": 8.143000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8076.867, "dur": 4.693000000000211, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8077.753, "dur": 0.636000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8079.759, "dur": 0.886000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8100.793, "dur": 3.2539999999999054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8101.658, "dur": 0.918999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8103.419, "dur": 0.30900000000019645, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8108.709, "dur": 89.28999999999996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8109.426, "dur": 0.8159999999998035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8130.629, "dur": 0.4099999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8150.873, "dur": 24.199000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8151.772, "dur": 7.958999999999833, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8155.636, "dur": 2.5549999999993815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8156.587, "dur": 0.9539999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8160.511, "dur": 13.65899999999965, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8162.023, "dur": 0.7190000000000509, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8163.699, "dur": 2.0210000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8164.745, "dur": 0.467000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8167.405, "dur": 3.01299999999992, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8205.825, "dur": 3.4989999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8206.721, "dur": 1.103000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8208.628, "dur": 0.3709999999991851, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8214.873, "dur": 42.43000000000029, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8215.688, "dur": 0.9040000000004511, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8224.748, "dur": 6.550000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8226.394, "dur": 0.6900000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8237.741, "dur": 11.22400000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8239.361, "dur": 1.6649999999990541, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8240.216, "dur": 0.5129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8241.719, "dur": 6.022000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8242.583, "dur": 4.662000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8243.463, "dur": 0.6980000000003201, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8245.546, "dur": 0.8519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8266.773, "dur": 3.2290000000011787, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8267.688, "dur": 0.9140000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8269.393, "dur": 0.2919999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8274.726, "dur": 90.82699999999932, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8275.432, "dur": 0.8269999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8297.008, "dur": 0.47999999999956344, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8317.612, "dur": 22.882000000001426, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8318.539, "dur": 8.15099999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8319.955, "dur": 5.201000000000931, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8320.942, "dur": 3.5710000000017317, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8327.528, "dur": 12.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8328.962, "dur": 0.6790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8330.658, "dur": 2.0780000000013388, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8331.745, "dur": 0.46899999999914144, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8334.372, "dur": 3.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8373.56, "dur": 3.548000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8374.461, "dur": 1.066000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8376.374, "dur": 0.3930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8382.721, "dur": 39.926000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8383.522, "dur": 0.8299999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8392.438, "dur": 3.9789999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8394.101, "dur": 0.602999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8402.266, "dur": 13.925000000001091, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8406.627, "dur": 1.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8407.389, "dur": 0.5720000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8409.094, "dur": 5.8700000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8409.969, "dur": 4.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8410.814, "dur": 0.5839999999989232, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8412.763, "dur": 0.8409999999985303, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8431.958, "dur": 6.07799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8435.477, "dur": 1.0189999999984138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8437.398, "dur": 0.35600000000158616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8443.073, "dur": 89.35499999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8443.87, "dur": 0.8899999999994179, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8465.921, "dur": 0.3680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8486.459, "dur": 22.451999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8487.321, "dur": 8.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8488.691, "dur": 2.4499999999989086, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8489.634, "dur": 0.9110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8496.141, "dur": 11.94000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8497.59, "dur": 0.6460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8499.22, "dur": 2.0799999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8500.332, "dur": 0.44399999999950523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8502.886, "dur": 3.0169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8540.375, "dur": 6.1340000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8543.678, "dur": 1.2409999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8545.803, "dur": 0.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8552.132, "dur": 39.722999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8552.973, "dur": 0.897000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8562.049, "dur": 3.797999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8563.661, "dur": 0.5959999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8571.793, "dur": 13.52599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8573.388, "dur": 4.060999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8576.503, "dur": 0.5979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8578.144, "dur": 5.936999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8579.043, "dur": 4.556000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8579.95, "dur": 0.6489999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8581.968, "dur": 0.7539999999989959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8601.333, "dur": 5.614999999999782, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8602.219, "dur": 0.9370000000017171, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8606.332, "dur": 0.30199999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8611.945, "dur": 88.83500000000095, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8612.742, "dur": 0.9719999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8634.469, "dur": 0.4360000000015134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8655.136, "dur": 22.555999999998676, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8656.036, "dur": 5.570999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8657.416, "dur": 2.6300000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8658.366, "dur": 1.032999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8664.566, "dur": 12.20299999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8666.05, "dur": 0.761000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8667.888, "dur": 1.9679999999989377, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8668.969, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8671.519, "dur": 3.110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8708.593, "dur": 6.344999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8709.479, "dur": 1.2840000000014697, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8714.201, "dur": 0.42400000000088767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8720.584, "dur": 40.134000000000015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8721.366, "dur": 0.852999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8730.539, "dur": 3.933999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8732.15, "dur": 0.6779999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8740.362, "dur": 13.96600000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8742.066, "dur": 4.172999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8742.854, "dur": 0.5150000000012369, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8746.957, "dur": 6.130999999999403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8747.917, "dur": 4.677999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8748.81, "dur": 0.6710000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8750.867, "dur": 0.8140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8770.117, "dur": 3.173000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8770.996, "dur": 0.8680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8772.661, "dur": 0.30799999999908323, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8780.317, "dur": 88.07200000000012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8781.097, "dur": 0.8649999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8802.364, "dur": 0.3670000000001892, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8823.169, "dur": 22.65400000000045, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8824.09, "dur": 5.4760000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8825.435, "dur": 2.606999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8826.432, "dur": 1.0239999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8830.358, "dur": 14.550999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8831.83, "dur": 3.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8836.035, "dur": 2.007999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8837.107, "dur": 0.4830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 8839.669, "dur": 3.058000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8876.05, "dur": 3.5100000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8876.992, "dur": 1.0390000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8878.834, "dur": 0.3709999999991851, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 8887.75, "dur": 39.14400000000023, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8888.53, "dur": 0.8850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 8897.338, "dur": 3.930000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8898.916, "dur": 0.6640000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 8907.295, "dur": 13.272999999999229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 8908.893, "dur": 1.7009999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8909.638, "dur": 0.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 8911.29, "dur": 8.070999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 8912.171, "dur": 6.652000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8915.15, "dur": 0.6419999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 8917.205, "dur": 0.8379999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 8935.942, "dur": 3.3360000000011496, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8936.851, "dur": 1.0399999999990541, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 8938.65, "dur": 0.30500000000029104, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 8943.818, "dur": 90.125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8944.55, "dur": 3.1920000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 8968.516, "dur": 0.37000000000080036, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 8988.851, "dur": 22.402000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 8989.757, "dur": 5.566000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 8991.141, "dur": 2.6120000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 8992.112, "dur": 1.0020000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 8996.08, "dur": 14.306000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 8997.458, "dur": 0.6829999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 8999.082, "dur": 4.423999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9002.469, "dur": 0.4900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9005.144, "dur": 3.030000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9041.605, "dur": 3.5390000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9042.445, "dur": 1.2260000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9044.426, "dur": 0.386000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9050.586, "dur": 42.52100000000064, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9051.368, "dur": 3.55199999999968, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9063.334, "dur": 3.859999999998763, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9064.908, "dur": 0.6490000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9073.273, "dur": 13.481999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9074.9, "dur": 1.5500000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9075.634, "dur": 0.5030000000006112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9077.157, "dur": 8.369000000000597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9078.034, "dur": 6.9950000000008, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9078.955, "dur": 0.569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9083.331, "dur": 0.8269999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9102.48, "dur": 3.1010000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9103.304, "dur": 0.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9104.978, "dur": 0.29500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9110.039, "dur": 90.0059999999994, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9110.789, "dur": 0.7799999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9131.876, "dur": 2.9459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9155.256, "dur": 22.25, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9156.206, "dur": 5.269000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9157.594, "dur": 2.459000000000742, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9158.553, "dur": 0.9030000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9162.212, "dur": 14.415000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9163.58, "dur": 0.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9165.219, "dur": 4.4540000000015425, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9166.219, "dur": 0.4690000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9171.345, "dur": 3.070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9207.58, "dur": 3.5120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9208.489, "dur": 1.0690000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9210.381, "dur": 0.35200000000077125, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9216.484, "dur": 41.495999999999185, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9217.4, "dur": 0.8330000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9226.048, "dur": 6.166999999999462, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9229.907, "dur": 0.6400000000012369, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9238.412, "dur": 13.324999999998909, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9240.074, "dur": 1.7119999999995343, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9240.871, "dur": 0.5460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9242.478, "dur": 8.056000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9243.375, "dur": 6.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9244.292, "dur": 0.6530000000002474, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9246.297, "dur": 0.8680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9267.164, "dur": 3.4399999999986903, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9268.035, "dur": 1.0900000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9269.938, "dur": 0.3430000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9275.414, "dur": 89.28499999999985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9276.173, "dur": 0.9369999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9297.596, "dur": 0.38100000000122236, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9318.153, "dur": 24.045000000000073, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9321.296, "dur": 5.550999999999476, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9322.725, "dur": 2.6369999999988067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9323.749, "dur": 0.9940000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9327.577, "dur": 13.78400000000147, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9329.008, "dur": 0.6219999999993888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9330.557, "dur": 2.07799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9331.566, "dur": 0.5319999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9334.31, "dur": 4.84400000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9372.398, "dur": 3.606000000001586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9373.336, "dur": 1.0950000000011642, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9375.266, "dur": 0.40500000000065484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9381.462, "dur": 41.46600000000035, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9382.24, "dur": 0.9310000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9390.905, "dur": 6.516999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9392.514, "dur": 3.176000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9403.566, "dur": 12.897999999999229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9405.186, "dur": 1.577000000001135, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9405.956, "dur": 0.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9407.459, "dur": 5.798999999999069, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9408.327, "dur": 4.436000000001513, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9409.226, "dur": 0.5999999999985448, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9411.16, "dur": 0.8140000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9432.138, "dur": 3.4089999999996508, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9433.016, "dur": 1.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9434.853, "dur": 0.34900000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9440.186, "dur": 164.42799999999988, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9440.926, "dur": 0.8190000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9461.776, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9482.11, "dur": 89.07099999999991, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9483.033, "dur": 8.31500000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9484.436, "dur": 5.329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9488.167, "dur": 1.011000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9548.131, "dur": 18.266999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9551.138, "dur": 1.3549999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9554.849, "dur": 2.638999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9556.107, "dur": 0.8099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9559.547, "dur": 3.661000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9613.465, "dur": 4.066000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9614.545, "dur": 1.2849999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9616.716, "dur": 0.5049999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9623.234, "dur": 41.10999999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9623.969, "dur": 1.0580000000009022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9633.472, "dur": 4.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9635.165, "dur": 0.6099999999987631, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9647.407, "dur": 11.061999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9648.936, "dur": 1.8029999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9649.813, "dur": 0.5769999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9651.384, "dur": 5.927999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9652.224, "dur": 4.5679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9653.194, "dur": 0.5870000000013533, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9655.133, "dur": 0.8449999999993452, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9676.283, "dur": 2.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9677.009, "dur": 0.9020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9678.599, "dur": 0.2890000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9683.35, "dur": 134.73099999999977, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9683.97, "dur": 0.8100000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9711.175, "dur": 0.43699999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9732.651, "dur": 51.173000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9733.449, "dur": 7.738999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9734.704, "dur": 5.126000000000204, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9735.603, "dur": 0.9740000000001601, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9741.866, "dur": 41.024999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9742.991, "dur": 0.691000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9744.583, "dur": 1.8069999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9745.584, "dur": 0.3829999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9747.922, "dur": 32.465000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9829.426, "dur": 4.306000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9830.509, "dur": 1.514999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9832.906, "dur": 0.48699999999917054, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 9840.279, "dur": 53.41699999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9841.32, "dur": 1.4320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 9855.494, "dur": 5.899999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9857.881, "dur": 0.9320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 9870.131, "dur": 15.94000000000051, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 9875.151, "dur": 2.1229999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9876.135, "dur": 0.6659999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 9878.034, "dur": 6.7590000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 9878.975, "dur": 5.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9880.188, "dur": 0.6730000000006839, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 9882.3, "dur": 1.070000000001528, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 9904.012, "dur": 5.662999999998647, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9904.906, "dur": 3.1789999999982683, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 9908.972, "dur": 0.38400000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 9914.797, "dur": 117.25200000000041, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9915.578, "dur": 1.0390000000006694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 9941.073, "dur": 0.44499999999970896, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 9969.743, "dur": 34.23499999999876, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 9971.076, "dur": 10.852000000000771, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 9972.961, "dur": 3.6930000000011205, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9974.32, "dur": 1.3739999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 9983.233, "dur": 19.73999999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 9987.62, "dur": 1.256999999999607, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 9990.576, "dur": 2.9470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 9992.123, "dur": 0.7209999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 9996.127, "dur": 4.036000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10040.73, "dur": 6.92200000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10041.778, "dur": 4.208000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10046.892, "dur": 0.4210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10053.905, "dur": 46.638999999999214, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10054.789, "dur": 0.929999999998472, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10064.769, "dur": 4.1010000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10066.402, "dur": 0.6829999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10075.742, "dur": 17.844999999999345, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10077.497, "dur": 4.27599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10078.448, "dur": 2.95299999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10082.531, "dur": 9.724999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10083.45, "dur": 8.200999999999112, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10087.826, "dur": 0.625, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10089.929, "dur": 0.8269999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10110.491, "dur": 5.730999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10111.415, "dur": 1.0059999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10113.203, "dur": 2.6970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10121.369, "dur": 94.6260000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10122.165, "dur": 0.940999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10145.93, "dur": 0.44099999999889405, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10168.523, "dur": 22.88300000000163, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10169.441, "dur": 5.492999999998574, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10170.813, "dur": 2.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10171.783, "dur": 1.029000000000451, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10175.783, "dur": 14.753000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10179.8, "dur": 0.7460000000010041, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10181.532, "dur": 1.9970000000012078, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10182.578, "dur": 0.488999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10185.128, "dur": 3.2039999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10223.939, "dur": 6.2039999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10224.871, "dur": 1.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10226.867, "dur": 2.9459999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10236.033, "dur": 40.82099999999991, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10236.808, "dur": 0.9049999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10246.01, "dur": 3.878000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10247.583, "dur": 0.6409999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10256.225, "dur": 14.100000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10257.903, "dur": 1.7379999999993743, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10258.732, "dur": 0.49400000000059663, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10260.406, "dur": 8.71599999999853, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10263.928, "dur": 4.699000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10264.876, "dur": 0.5830000000005384, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10266.871, "dur": 0.8110000000015134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10286.561, "dur": 3.3960000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10287.462, "dur": 1.0889999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10289.358, "dur": 0.3040000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10294.603, "dur": 94.75700000000143, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10297.622, "dur": 0.8590000000003783, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10320.368, "dur": 0.4210000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10342.183, "dur": 22.521999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10343.084, "dur": 5.441999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10344.432, "dur": 2.6229999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10345.393, "dur": 0.9429999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10349.31, "dur": 14.54200000000128, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10350.839, "dur": 0.683999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10354.911, "dur": 2.0319999999992433, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10355.989, "dur": 0.5, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10358.575, "dur": 3.0209999999988213, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10397.387, "dur": 3.561999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10398.314, "dur": 1.1049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10400.242, "dur": 0.3989999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10406.411, "dur": 45.858000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10409.957, "dur": 0.9269999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10419.367, "dur": 3.8079999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10420.938, "dur": 0.5969999999997526, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10429.444, "dur": 16.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10431.065, "dur": 1.6890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10431.851, "dur": 0.5159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10433.459, "dur": 10.95799999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10434.341, "dur": 9.549999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10438.728, "dur": 1.9600000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10442.228, "dur": 0.8190000000013242, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10461.856, "dur": 3.2479999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10462.675, "dur": 0.9729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10464.52, "dur": 0.2809999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10469.819, "dur": 92.10699999999997, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10470.563, "dur": 0.8150000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10495.497, "dur": 0.4320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10516.698, "dur": 22.29700000000048, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10517.617, "dur": 5.329999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10518.995, "dur": 2.4909999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10519.964, "dur": 0.8870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10523.682, "dur": 14.394999999998618, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10525.113, "dur": 0.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10526.704, "dur": 4.435999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10527.756, "dur": 2.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10532.855, "dur": 3.0120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10569.688, "dur": 3.668999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10570.593, "dur": 1.1700000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10572.648, "dur": 0.386000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10578.56, "dur": 42.222999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10579.338, "dur": 0.7910000000010768, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10591.046, "dur": 3.8809999999994034, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10592.616, "dur": 0.6329999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10601.208, "dur": 13.305000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10602.8, "dur": 1.6230000000014115, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10603.604, "dur": 0.49800000000141154, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10605.129, "dur": 8.20799999999872, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10606.043, "dur": 6.787000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10606.929, "dur": 0.5599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10608.884, "dur": 3.1080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10630.42, "dur": 3.378000000000611, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10631.356, "dur": 0.9899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10633.146, "dur": 0.32699999999931606, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10638.54, "dur": 115.82499999999891, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10639.303, "dur": 0.9310000000004948, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10661.519, "dur": 0.4319999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10685.342, "dur": 43.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10686.161, "dur": 12.993000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10694.808, "dur": 2.877999999998792, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10695.93, "dur": 1.0679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10699.899, "dur": 27.703999999999724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10701.361, "dur": 0.635999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10703.011, "dur": 1.9830000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10704.094, "dur": 0.44800000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10708.891, "dur": 16.173000000000684, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10762.712, "dur": 4.058000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10763.766, "dur": 1.2970000000004802, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10766.053, "dur": 0.3889999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10772.617, "dur": 53.21700000000055, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10773.411, "dur": 0.8700000000008004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10788.605, "dur": 6.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10792.997, "dur": 0.7100000000009459, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10802.071, "dur": 16.951999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10803.843, "dur": 1.606999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10804.603, "dur": 0.5500000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10806.157, "dur": 11.581000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10807.033, "dur": 8.139000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10811.361, "dur": 0.6479999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10813.461, "dur": 0.8559999999997672, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10835.625, "dur": 3.399999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10836.619, "dur": 0.9629999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10838.408, "dur": 0.31600000000071304, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 10843.736, "dur": 93.04199999999946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10844.485, "dur": 0.8059999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 10867.105, "dur": 0.40200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 10888.677, "dur": 24.32600000000093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 10889.56, "dur": 7.681000000000495, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 10893.272, "dur": 2.6049999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10894.174, "dur": 1.0349999999998545, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 10897.991, "dur": 14.155000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10899.383, "dur": 0.636000000000422, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 10901.045, "dur": 1.896999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10902.045, "dur": 0.4390000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 10904.607, "dur": 3.1460000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 10944.384, "dur": 3.7739999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10945.305, "dur": 1.27599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 10947.452, "dur": 0.3919999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 10953.495, "dur": 48.987999999999374, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10954.319, "dur": 0.8829999999998108, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 10963.266, "dur": 6.135000000000218, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10964.867, "dur": 0.5879999999997381, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 10975.692, "dur": 11.160000000001673, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 10977.378, "dur": 1.6109999999989668, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 10978.148, "dur": 0.5510000000012951, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 10979.677, "dur": 5.963999999999942, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 10980.592, "dur": 4.516999999999825, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 10981.514, "dur": 0.603000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 10983.442, "dur": 0.8540000000011787, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11012.171, "dur": 3.5529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11013.172, "dur": 1.0429999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11015.108, "dur": 0.3099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11020.536, "dur": 92.4940000000006, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11021.254, "dur": 0.9009999999998399, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11044.099, "dur": 0.4500000000007276, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11065.381, "dur": 22.595000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11066.251, "dur": 7.8770000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11067.722, "dur": 5.020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11068.678, "dur": 3.407999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11074.906, "dur": 12.193999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11076.428, "dur": 0.7229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11078.098, "dur": 2.0159999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11079.209, "dur": 0.4349999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11081.729, "dur": 3.1050000000013824, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11120.917, "dur": 3.699000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11121.844, "dur": 1.2550000000010186, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11123.928, "dur": 0.3790000000008149, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11130.057, "dur": 41.54699999999866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11130.861, "dur": 0.8099999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11139.364, "dur": 3.860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11140.943, "dur": 0.6150000000016007, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11149.197, "dur": 15.782999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11153.158, "dur": 1.6080000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11153.95, "dur": 0.5139999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11155.462, "dur": 8.282000000001062, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11156.339, "dur": 6.906999999999243, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11159.553, "dur": 0.543999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11161.547, "dur": 0.8909999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11180.807, "dur": 5.445999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11183.786, "dur": 1.043999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11185.63, "dur": 0.32300000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11191.144, "dur": 88.51800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11191.908, "dur": 0.7950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11213.765, "dur": 0.41300000000046566, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11235.034, "dur": 21.863999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11235.911, "dur": 7.310999999999694, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11237.289, "dur": 2.4029999999984284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11238.211, "dur": 0.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11244.144, "dur": 11.972999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11245.601, "dur": 0.6759999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11247.251, "dur": 2.0489999999990687, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11248.408, "dur": 0.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11250.846, "dur": 3.0230000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11287.406, "dur": 5.855999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11290.546, "dur": 1.168999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11292.557, "dur": 0.3789999999989959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11298.737, "dur": 39.72200000000157, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11299.593, "dur": 0.8220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11308.562, "dur": 3.8549999999995634, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11310.182, "dur": 0.6279999999987922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11318.47, "dur": 13.46900000000096, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11320.113, "dur": 3.9279999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11323.148, "dur": 0.5610000000015134, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11324.756, "dur": 5.9650000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11325.675, "dur": 4.558000000000902, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11326.531, "dur": 0.5559999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11328.465, "dur": 0.8729999999995925, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11347.863, "dur": 5.611000000000786, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11348.824, "dur": 0.9729999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11352.781, "dur": 0.36299999999937427, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11358.516, "dur": 87.74099999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11359.333, "dur": 0.9020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11381.162, "dur": 0.4179999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11402.141, "dur": 21.655000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11403.005, "dur": 5.145000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11404.364, "dur": 2.4350000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11405.253, "dur": 0.9389999999984866, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11411.07, "dur": 11.860000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11412.509, "dur": 0.7270000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11414.152, "dur": 1.9529999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11415.203, "dur": 0.4320000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11417.751, "dur": 3.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11453.993, "dur": 5.868999999998778, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11454.864, "dur": 1.1820000000006985, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11459.155, "dur": 0.3819999999996071, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11465.523, "dur": 41.38500000000022, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11466.299, "dur": 0.8949999999986176, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11475.151, "dur": 3.7270000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11476.703, "dur": 0.613999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11484.84, "dur": 15.496999999999389, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11486.473, "dur": 4.068999999999505, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11487.233, "dur": 0.5120000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11491.273, "dur": 7.84900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11492.159, "dur": 6.458000000000538, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11495.028, "dur": 0.5689999999995052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11497.011, "dur": 0.7799999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11516.342, "dur": 5.565999999998894, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11517.281, "dur": 0.9579999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11519.072, "dur": 0.30099999999947613, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11526.711, "dur": 87.4930000000004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11527.486, "dur": 0.8879999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11549.128, "dur": 0.4110000000000582, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11569.915, "dur": 21.701999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11570.776, "dur": 5.139000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11572.121, "dur": 2.412000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11573.053, "dur": 0.9519999999993161, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11576.73, "dur": 14.051000000001295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11580.258, "dur": 0.6869999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11581.888, "dur": 2.036999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11582.992, "dur": 0.4750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11585.53, "dur": 3.0529999999998836, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11621.73, "dur": 3.621000000001004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11622.657, "dur": 1.1890000000003056, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11624.667, "dur": 0.3569999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11633.29, "dur": 38.90799999999945, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11634.087, "dur": 0.8739999999997963, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11642.841, "dur": 3.7520000000004075, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11644.38, "dur": 0.6060000000015862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11652.648, "dur": 13.189000000000306, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11654.25, "dur": 1.6389999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11654.965, "dur": 0.5509999999994761, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11656.559, "dur": 8.092000000000553, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11657.447, "dur": 6.677999999999884, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11660.491, "dur": 0.5450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11662.478, "dur": 0.8580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11681.465, "dur": 3.293999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11682.388, "dur": 0.9479999999985012, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11684.136, "dur": 0.31199999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11689.283, "dur": 90.5590000000011, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11690.011, "dur": 3.1489999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11714.269, "dur": 0.42699999999967986, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11735.217, "dur": 22.3179999999993, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11736.209, "dur": 5.218999999999141, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11737.517, "dur": 2.4870000000009895, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11738.465, "dur": 0.9509999999991123, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11742.211, "dur": 14.450000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11743.682, "dur": 0.7529999999987922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11745.389, "dur": 4.468000000000757, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11748.942, "dur": 0.4570000000003347, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11751.538, "dur": 2.970999999999549, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11787.516, "dur": 3.5599999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11788.44, "dur": 1.128999999998996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11790.386, "dur": 0.3789999999989959, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11796.546, "dur": 43.38199999999961, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11797.289, "dur": 3.2549999999991996, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11808.55, "dur": 3.835000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11810.143, "dur": 0.5990000000001601, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11818.291, "dur": 15.222999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11819.928, "dur": 4.039000000000669, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11823.078, "dur": 0.5429999999996653, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11824.688, "dur": 7.519000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11825.647, "dur": 6.036999999998443, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11826.511, "dur": 0.5519999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11829.967, "dur": 0.8940000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11849.296, "dur": 3.227999999999156, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11850.154, "dur": 0.9579999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11851.913, "dur": 0.31599999999889405, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 11857.198, "dur": 94.86299999999937, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11857.945, "dur": 0.793999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 11883.061, "dur": 2.8170000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 11907.033, "dur": 21.799000000000888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 11907.856, "dur": 5.353000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 11909.212, "dur": 2.5169999999998254, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11910.165, "dur": 0.9829999999983556, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 11913.965, "dur": 14.043999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11915.375, "dur": 0.7700000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 11917.006, "dur": 4.081000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11917.986, "dur": 0.40499999999883585, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 11922.825, "dur": 2.988999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 11959.775, "dur": 3.559000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11960.67, "dur": 1.1790000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 11962.642, "dur": 0.37700000000040745, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 11968.886, "dur": 41.95999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11969.687, "dur": 0.8870000000006257, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 11978.358, "dur": 6.461999999999534, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11982.545, "dur": 0.6110000000007858, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 11990.986, "dur": 13.330999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 11992.577, "dur": 1.5940000000009604, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 11993.304, "dur": 0.4930000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 11994.847, "dur": 8.273999999999432, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 11995.732, "dur": 6.858000000000175, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 11996.674, "dur": 0.5519999999996799, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 11998.587, "dur": 0.8209999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12020.374, "dur": 3.3539999999993597, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12021.242, "dur": 1.076999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12023.089, "dur": 0.3289999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12028.285, "dur": 89.5010000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12028.989, "dur": 0.8360000000011496, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12050.33, "dur": 0.41599999999925785, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12071.002, "dur": 23.618000000000393, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12074.226, "dur": 5.1819999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12075.57, "dur": 2.449000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12076.516, "dur": 0.8980000000010477, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12080.146, "dur": 13.618999999998778, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12081.539, "dur": 0.6529999999984284, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12083.123, "dur": 2.037000000000262, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12084.218, "dur": 0.4470000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12086.784, "dur": 4.579999999999927, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12125.563, "dur": 3.7229999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12126.49, "dur": 1.2659999999996217, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12128.567, "dur": 0.40500000000065484, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12137.446, "dur": 68.76599999999962, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12138.264, "dur": 0.8760000000002037, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12147.462, "dur": 8.405000000000655, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12149.048, "dur": 2.992000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12162.366, "dur": 16.004000000000815, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12164.087, "dur": 4.167000000001281, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12167.261, "dur": 0.613999999999578, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12168.979, "dur": 6.2409999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12169.863, "dur": 4.831000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12170.745, "dur": 0.6279999999987922, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12172.887, "dur": 0.9020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12236.131, "dur": 2.8150000000005093, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12236.881, "dur": 0.8840000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12238.428, "dur": 0.2739999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12242.866, "dur": 144.8119999999999, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12243.491, "dur": 0.680000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12278.083, "dur": 0.33799999999973807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12323.553, "dur": 41.13199999999961, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12324.3, "dur": 25.247000000001208, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12345.525, "dur": 2.5460000000002765, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12346.509, "dur": 0.9159999999992579, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12350.296, "dur": 11.981999999999971, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12351.761, "dur": 0.7029999999995198, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12353.403, "dur": 1.9750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12354.45, "dur": 0.4709999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12356.92, "dur": 3.0709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12395.533, "dur": 3.6920000000009168, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12396.449, "dur": 1.2600000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12398.503, "dur": 0.396999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12404.524, "dur": 39.91200000000026, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12405.31, "dur": 0.8389999999999418, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12414.016, "dur": 3.949000000000524, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12415.648, "dur": 0.647000000000844, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12426.878, "dur": 11.157999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12428.536, "dur": 1.6380000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12429.271, "dur": 0.5849999999991269, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12430.886, "dur": 5.924999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12431.778, "dur": 4.528000000000247, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12432.645, "dur": 0.5569999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12434.581, "dur": 0.8659999999999854, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12456.12, "dur": 3.2950000000000728, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12456.995, "dur": 1.0139999999992142, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12458.811, "dur": 0.3220000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12464.006, "dur": 93.32400000000052, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12464.725, "dur": 0.8519999999989523, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12489.456, "dur": 0.42599999999947613, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12510.202, "dur": 23.809000000001106, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12511.106, "dur": 7.478000000000975, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12512.385, "dur": 4.77599999999984, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12513.351, "dur": 1.010999999998603, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12519.32, "dur": 13.854999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12520.78, "dur": 0.6089999999985594, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12522.32, "dur": 2.0540000000000873, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12523.47, "dur": 0.4680000000007567, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12525.991, "dur": 4.902000000000044, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12567.519, "dur": 3.8479999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12568.476, "dur": 1.2749999999996362, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12570.634, "dur": 0.40200000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12576.894, "dur": 39.21299999999974, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12577.705, "dur": 0.805000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12586.495, "dur": 3.855999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12588.061, "dur": 0.625, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12596.258, "dur": 13.476000000000568, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12600.164, "dur": 1.5579999999990832, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12600.861, "dur": 0.5209999999988213, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12602.448, "dur": 5.994999999998981, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12603.307, "dur": 4.570999999999913, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12604.173, "dur": 0.5829999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12606.14, "dur": 0.8180000000011205, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12625.525, "dur": 5.460000000000946, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12626.435, "dur": 3.0979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12630.38, "dur": 0.3100000000013097, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12635.758, "dur": 88.52200000000084, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12636.56, "dur": 0.8680000000003929, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12658.525, "dur": 0.44800000000032014, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12679.224, "dur": 22.186999999999898, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12680.02, "dur": 8.057999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12681.358, "dur": 2.5210000000006403, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12682.286, "dur": 1.0, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12688.851, "dur": 11.691999999999098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12690.245, "dur": 0.6809999999986758, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12691.833, "dur": 1.9349999999994907, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12692.865, "dur": 0.4709999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12695.445, "dur": 3.0310000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12732.024, "dur": 6.097999999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12732.954, "dur": 3.5490000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12737.418, "dur": 0.3989999999994325, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12743.84, "dur": 39.35499999999956, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12744.689, "dur": 0.7759999999998399, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12753.639, "dur": 3.9240000000008877, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12755.255, "dur": 0.5910000000003492, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12763.469, "dur": 13.444000000001324, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12765.112, "dur": 3.7220000000015716, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12765.862, "dur": 2.617000000000189, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12769.655, "dur": 6.0129999999990105, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12770.614, "dur": 4.5240000000012515, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12771.445, "dur": 0.5760000000009313, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12773.408, "dur": 0.8880000000008295, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12792.406, "dur": 5.511999999998807, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12793.328, "dur": 0.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12794.999, "dur": 2.587999999999738, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12802.584, "dur": 90.54799999999886, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12803.354, "dur": 0.9130000000004657, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12825.614, "dur": 0.4250000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 12846.364, "dur": 24.137000000000626, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 12847.304, "dur": 5.167999999999665, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 12848.595, "dur": 2.519000000000233, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12849.533, "dur": 0.956000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 12853.256, "dur": 16.33100000000013, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12857.108, "dur": 2.855999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 12860.885, "dur": 1.951999999999316, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12861.899, "dur": 0.4819999999999709, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 12864.436, "dur": 3.0090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12900.911, "dur": 6.020000000000437, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12901.771, "dur": 1.1199999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12903.715, "dur": 2.8690000000005966, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 12912.403, "dur": 38.89300000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12913.277, "dur": 0.956000000000131, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 12922.239, "dur": 3.757999999999811, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12923.748, "dur": 0.6020000000007713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 12931.921, "dur": 13.05699999999888, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 12933.561, "dur": 1.5709999999999127, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 12934.29, "dur": 0.5309999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 12937.833, "dur": 5.947000000000116, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 12938.738, "dur": 4.505000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12939.574, "dur": 0.5979999999999563, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 12941.567, "dur": 0.8000000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 12960.526, "dur": 3.264000000001033, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12961.445, "dur": 0.8450000000011642, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 12963.131, "dur": 0.3580000000001746, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 12970.648, "dur": 640.8760000000002, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 12971.442, "dur": 0.875, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 12993.194, "dur": 0.43699999999989814, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 13013.671, "dur": 568.098, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13014.584, "dur": 5.342999999998938, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13015.967, "dur": 2.5090000000000146, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13016.911, "dur": 0.9549999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13020.728, "dur": 559.7790000000005, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13022.136, "dur": 0.657999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13569.571, "dur": 2.5419999999994616, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13570.921, "dur": 0.6440000000002328, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13574.051, "dur": 3.4800000000013824, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13620.213, "dur": 4.345000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13621.283, "dur": 1.4950000000008004, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13623.781, "dur": 0.4379999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 13630.574, "dur": 48.39499999999862, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13634.072, "dur": 0.907999999999447, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13644.527, "dur": 4.183999999999287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13646.218, "dur": 0.6439999999984138, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13655.739, "dur": 16.61499999999978, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13657.516, "dur": 1.668999999999869, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13658.306, "dur": 0.5299999999988358, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13659.935, "dur": 11.09900000000016, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13661.084, "dur": 9.350999999998749, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13662.038, "dur": 4.897999999999229, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13668.442, "dur": 0.9010000000016589, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13688.96, "dur": 3.4250000000010914, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13689.955, "dur": 0.9750000000003638, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13691.781, "dur": 0.3129999999982829, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13697.228, "dur": 97.23300000000017, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13698.04, "dur": 0.8289999999997235, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13724.748, "dur": 0.41700000000128057, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 13747.986, "dur": 22.938999999998487, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13749.011, "dur": 5.6819999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13750.511, "dur": 2.57799999999952, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13751.453, "dur": 1.077000000001135, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13755.465, "dur": 14.566000000000713, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13756.972, "dur": 0.6450000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13758.652, "dur": 4.225000000000364, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13759.717, "dur": 2.6970000000001164, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13764.638, "dur": 3.0829999999987194, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13802.476, "dur": 3.9659999999985303, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13803.474, "dur": 1.396999999999025, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13805.746, "dur": 0.3890000000010332, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 13811.809, "dur": 55.63000000000102, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13812.683, "dur": 1.0569999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::select", "ph": "X", "ts": 13824.932, "dur": 4.0569999999988795, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13826.625, "dur": 0.6880000000001019, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::stack", "ph": "X", "ts": 13835.056, "dur": 25.26800000000003, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::unsqueeze", "ph": "X", "ts": 13836.824, "dur": 1.5679999999993015, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13837.571, "dur": 0.5149999999994179, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::cat", "ph": "X", "ts": 13839.12, "dur": 19.922999999998865, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::_cat", "ph": "X", "ts": 13840.036, "dur": 18.432999999999083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13852.355, "dur": 0.6430000000000291, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::resize_", "ph": "X", "ts": 13854.522, "dur": 2.9839999999985594, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13877.081, "dur": 3.3510000000005675, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13878.004, "dur": 0.9899999999997817, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13879.823, "dur": 0.2999999999992724, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "predict", "ph": "X", "ts": 13885.23, "dur": 93.53900000000067, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13885.989, "dur": 0.8950000000004366, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::to", "ph": "X", "ts": 13908.665, "dur": 0.4289999999982683, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::linear", "ph": "X", "ts": 13933.401, "dur": 22.036000000000058, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::t", "ph": "X", "ts": 13934.361, "dur": 5.274999999999636, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::transpose", "ph": "X", "ts": 13935.675, "dur": 2.5310000000008586, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13936.598, "dur": 1.0229999999992287, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::addmm", "ph": "X", "ts": 13940.381, "dur": 14.26300000000083, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13941.784, "dur": 0.7049999999999272, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::expand", "ph": "X", "ts": 13943.373, "dur": 2.015000000001237, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::as_strided", "ph": "X", "ts": 13944.484, "dur": 0.4709999999995489, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::copy_", "ph": "X", "ts": 13949.232, "dur": 3.105999999999767, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zeros", "ph": "X", "ts": 13986.665, "dur": 3.580999999998312, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13987.536, "dur": 1.1559999999990396, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::zero_", "ph": "X", "ts": 13989.544, "dur": 0.3850000000002183, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "enumerate(DataLoader)#_SingleProcessDataLoaderIter.__next__", "ph": "X", "ts": 13995.88, "dur": 10.150000000001455, "tid": 1, "pid": "CPU functions", "args": {}}, {"name": "aten::empty", "ph": "X", "ts": 13996.686, "dur": 0.9040000000004511, "tid": 1, "pid": "CPU functions", "args": {}}] From 59c941b7a15db0afdc0fa35b104b908a088772ef Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 14:32:02 +0100 Subject: [PATCH 055/126] Undo code that should be in 3/4 --- pytorch_lightning/profiler/pytorch.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index db89e34bac913..bb961ca452697 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -155,7 +155,6 @@ def __init__( self.context_names = {} self.running_stack = [] self.profiler = None - self._parent_profiler = None super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) @@ -263,11 +262,3 @@ def summary(self) -> str: return self._stats_to_str(recorded_stats) - def teardown(self) -> None: - if self.profiler is not None: - self.profiler.__exit__(None, None, None) - - if self._parent_profiler is not None: - self._parent_profiler.__exit__(None, None, None) - - return super().teardown() From da0f310684f8987cf09a1b85100a08cde90e14bd Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 19:13:33 +0100 Subject: [PATCH 056/126] Multi-stage multi-rank --- CHANGELOG.md | 3 + pytorch_lightning/profiler/profilers.py | 92 ++++++++++++++++--------- pytorch_lightning/profiler/pytorch.py | 16 +++-- pytorch_lightning/trainer/trainer.py | 4 +- tests/deprecated_api/test_remove_1-5.py | 2 +- tests/test_profiler.py | 22 +++--- 6 files changed, 85 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5f2896004a10..fe656ed46153d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,6 +71,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Changed `setup()` and `teardown()` stage argument to take any of `{fit,validate,test,predict}` ([#6386](https://github.com/PyTorchLightning/pytorch-lightning/pull/6386)) +- Changed profilers to save separate report files per state and rank ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) + + ### Deprecated - `period` has been deprecated in favor of `every_n_val_epochs` in the `ModelCheckpoint` callback ([#6146](https://github.com/PyTorchLightning/pytorch-lightning/pull/6146)) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 334f121c9c084..bd889c24c2bf4 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -22,7 +22,7 @@ from collections import defaultdict from contextlib import contextmanager from pathlib import Path -from typing import Dict, Optional, Tuple, Union +from typing import Dict, Optional, Tuple, Union, TextIO, Callable import numpy as np @@ -77,12 +77,13 @@ def __init__( ) filepath = Path(output_filename) self.dirpath = filepath.parent - self.filename = filepath.name - self.output_file = None - self.local_rank = None - self.log_dir = None - self.write_streams = [] - self._file_prepared = False + self.filename = filepath.stem + + self._output_file: Optional[TextIO] = None + self._write_stream: Optional[Callable] = None + self._local_rank: Optional[int] = None + self._log_dir: Optional[str] = None + self._stage: Optional[str] = None @contextmanager def profile(self, action_name: str) -> None: @@ -116,51 +117,72 @@ def profile_iterable(self, iterable, action_name: str) -> None: break def _rank_zero_info(self, *args, **kwargs) -> None: - if self.local_rank in (None, 0): + if self._local_rank in (None, 0): log.info(*args, **kwargs) - def _prepare_file(self) -> None: - if not self._file_prepared: - if self.filename and self.output_file is None: - dirpath = self.dirpath or self.log_dir - filepath = os.path.join(dirpath, self.filename) - fs = get_filesystem(filepath) - self.output_file = fs.open(filepath, "a") - self.write_streams = [self.output_file.write] if self.output_file else [self._rank_zero_info] - self._file_prepared = True + def _prepare_filename(self) -> str: + filename = "" + if self._stage is not None: + filename += f"{self._stage}-" + filename += self.filename + if self._local_rank is not None: + filename += f"-{self._local_rank}" + filename += ".txt" + return filename + + def _prepare_streams(self) -> None: + if self._write_stream is not None: + return + if self.filename: + dirpath = self.dirpath or self._log_dir + filepath = os.path.join(dirpath, self._prepare_filename()) + fs = get_filesystem(filepath) + file = fs.open(filepath, "a") + self._output_file = file + self._write_stream = file.write + else: + self._write_stream = self._rank_zero_info def describe(self) -> None: """Logs a profile report after the conclusion of run.""" - self._prepare_file() - for write in self.write_streams: - write(self.summary()) - if self.output_file: - self.output_file.flush() - self.teardown() + # there are pickling issues with open file handles in Python 3.6 + # so to avoid them, we open and close the files within this function + # by calling `_prepare_streams` and `teardown` + self._prepare_streams() + self._write_stream(self.summary()) + if self._output_file is not None: + self._output_file.flush() + self.teardown(stage=self._stage) def _stats_to_str(self, stats: Dict[str, str]) -> str: output = ["Profiler Report"] for action, value in stats.items(): header = f"Profile stats for: {action}" - if getattr(self, "local_rank", None) is not None: - header += f" rank: {self.local_rank}" + if self._local_rank is not None: + header += f" rank: {self._local_rank}" output.append(header) output.append(value) return os.linesep.join(output) - def setup(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: + def setup( + self, + stage: Optional[str] = None, + local_rank: Optional[int] = None, + log_dir: Optional[str] = None, + ) -> None: """ This function is used by the Trainer to inject the local_rank on distributed and `TensorBoardLogger.log_dir`. """ - self.local_rank = local_rank - self.log_dir = log_dir + self._stage = stage + self._local_rank = local_rank + self._log_dir = log_dir - def teardown(self) -> None: - """Close profiler's stream.""" - if self.output_file: - self.output_file.close() - self.write_streams = [] - self._file_prepared = False + def teardown(self, stage: Optional[str] = None) -> None: + """Close a stage's file and streams.""" + assert stage == self._stage + self._write_stream = None + if self._output_file is not None: + self._output_file.close() def __del__(self) -> None: self.teardown() @@ -211,6 +233,7 @@ def __init__( will be used. filename: If present, filename where the profiler results will be saved instead of printing to stdout. + The ``.txt`` extension will be used automatically. Raises: ValueError: @@ -305,6 +328,7 @@ def __init__( will be used. filename: If present, filename where the profiler results will be saved instead of printing to stdout. + The ``.txt`` extension will be used automatically. line_count_restriction: this can be used to limit the number of functions reported for each action. either an integer (to select a count of lines), diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index bb961ca452697..85b3ec7d8d2ed 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -73,6 +73,7 @@ def __init__( will be used. filename: If present, filename where the profiler results will be saved instead of printing to stdout. + The ``.txt`` extension will be used automatically. enabled: Setting this to False makes this context manager a no-op. @@ -118,8 +119,7 @@ def __init__( Raises: MisconfigurationException: - If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``, or - if log file is not a ``.txt`` file. + If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``. ValueError: If you attempt to stop recording an action which was never started. """ @@ -158,8 +158,13 @@ def __init__( super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) - def setup(self, local_rank: Optional[int] = None, log_dir: Optional[str] = None) -> None: - super().setup(local_rank=local_rank, log_dir=log_dir) + def setup( + self, + stage: Optional[str] = None, + local_rank: Optional[int] = None, + log_dir: Optional[str] = None + ) -> None: + super().setup(stage=stage, local_rank=local_rank, log_dir=log_dir) # if the user didn't provide `path_to_export_trace`, # set it as TensorBoardLogger log_dir if exists @@ -234,7 +239,7 @@ def stop(self, action_name: str) -> None: def summary(self) -> str: recorded_stats = {} output_string = '' - local_rank = '0' if self.local_rank is None else self.local_rank + local_rank = '0' if self._local_rank is None else self._local_rank if not self.enabled: return output_string @@ -261,4 +266,3 @@ def summary(self) -> str: recorded_stats[action_name] = table return self._stats_to_str(recorded_stats) - diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index 22f2966a54e0b..710f28d113438 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -519,7 +519,7 @@ def dispatch(self): self.accelerator.start_training(self) def _on_run_stage_setup(self): - self.profiler.setup(local_rank=self.local_rank if self.world_size > 1 else None, log_dir=self.log_dir) + self.profiler.setup(self.state, local_rank=self.local_rank if self.world_size > 1 else None, log_dir=self.log_dir) def run_stage(self): results = None @@ -1085,7 +1085,7 @@ def call_teardown_hook(self, model: LightningModule) -> None: else: state = None - self.profiler.teardown() + self.profiler.teardown(stage=state) self.teardown(stage=state) model.teardown(stage=state) diff --git a/tests/deprecated_api/test_remove_1-5.py b/tests/deprecated_api/test_remove_1-5.py index 6f2c65c7a1171..0c5f581d7775c 100644 --- a/tests/deprecated_api/test_remove_1-5.py +++ b/tests/deprecated_api/test_remove_1-5.py @@ -208,7 +208,7 @@ def on_test_epoch_end(self, outputs): @pytest.mark.parametrize("cls", (BaseProfiler, SimpleProfiler, AdvancedProfiler, PyTorchProfiler)) def test_v1_5_0_profiler_output_filename(tmpdir, cls): - filepath = str(tmpdir / "test") + filepath = str(tmpdir / "test.txt") with pytest.deprecated_call(match="`output_filename` parameter has been removed"): profiler = cls(output_filename=filepath) assert profiler.dirpath == tmpdir diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 696d45ca81a43..2ebf1c2845fdd 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -115,8 +115,8 @@ def test_simple_profiler_value_errors(simple_profiler): def test_simple_profiler_log_dir(tmpdir): """Ensure the profiler dirpath defaults to `trainer.log_dir` when not present""" - profiler = SimpleProfiler(filename="profiler.txt") - assert profiler.log_dir is None + profiler = SimpleProfiler(filename="profiler") + assert profiler._log_dir is None model = BoringModel() trainer = Trainer( @@ -128,13 +128,13 @@ def test_simple_profiler_log_dir(tmpdir): expected = tmpdir / "lightning_logs" / "version_0" assert trainer.log_dir == expected - assert profiler.log_dir == trainer.log_dir - assert expected.join("profiler.txt").exists() + assert profiler._log_dir == trainer.log_dir + assert expected.join("fit-profiler.txt").exists() @pytest.fixture def advanced_profiler(tmpdir): - return AdvancedProfiler(dirpath=tmpdir, filename="profiler.txt") + return AdvancedProfiler(dirpath=tmpdir, filename="profiler") @pytest.mark.parametrize(["action", "expected"], [ @@ -195,7 +195,7 @@ def test_advanced_profiler_describe(tmpdir, advanced_profiler): pass # log to stdout and print to file advanced_profiler.describe() - path = advanced_profiler.dirpath / advanced_profiler.filename + path = advanced_profiler.dirpath / f"{advanced_profiler.filename}.txt" data = path.read_text("utf-8") assert len(data) > 0 @@ -213,7 +213,7 @@ def test_advanced_profiler_value_errors(advanced_profiler): @pytest.fixture def pytorch_profiler(tmpdir): - return PyTorchProfiler(dirpath=tmpdir, filename="profiler.txt") + return PyTorchProfiler(dirpath=tmpdir, filename="profiler") def test_pytorch_profiler_describe(pytorch_profiler): @@ -223,7 +223,7 @@ def test_pytorch_profiler_describe(pytorch_profiler): # log to stdout and print to file pytorch_profiler.describe() - path = pytorch_profiler.dirpath / pytorch_profiler.filename + path = pytorch_profiler.dirpath / f"{pytorch_profiler.filename}.txt" data = path.read_text("utf-8") assert len(data) > 0 @@ -266,7 +266,7 @@ def test_pytorch_profiler_nested(tmpdir): """Ensure that the profiler handles nested context""" pytorch_profiler = PyTorchProfiler( - profiled_functions=["a", "b", "c"], use_cuda=False, dirpath=tmpdir, filename="profiler.txt" + profiled_functions=["a", "b", "c"], use_cuda=False, dirpath=tmpdir, filename="profiler" ) with pytorch_profiler.profile("a"): @@ -327,7 +327,7 @@ def test_profiler_teardown(tmpdir, cls): """ This test checks if profiler teardown method is called when trainer is exiting. """ - profiler = cls(dirpath=tmpdir, filename="profiler.txt") + profiler = cls(dirpath=tmpdir, filename="profiler") model = BoringModel() trainer = Trainer( @@ -337,4 +337,4 @@ def test_profiler_teardown(tmpdir, cls): ) trainer.fit(model) - assert profiler.output_file.closed + assert profiler._output_file.closed From 59c1b4c7cc5ddbb8d9d019d6e746e93abf749aa5 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 19:26:12 +0100 Subject: [PATCH 057/126] 2/5 changes --- .../plugins/training_type/horovod.py | 1 + .../trainer/connectors/profiler_connector.py | 5 +++++ pytorch_lightning/trainer/properties.py | 10 ++++++++++ pytorch_lightning/trainer/trainer.py | 18 +++++------------- tests/test_profiler.py | 13 +++++++------ 5 files changed, 28 insertions(+), 19 deletions(-) diff --git a/pytorch_lightning/plugins/training_type/horovod.py b/pytorch_lightning/plugins/training_type/horovod.py index 06ab7500dacc8..8d0add27cbb29 100644 --- a/pytorch_lightning/plugins/training_type/horovod.py +++ b/pytorch_lightning/plugins/training_type/horovod.py @@ -110,6 +110,7 @@ def start_evaluating(self, trainer): def start_predicting(self, trainer): with ExitStack(): + # set up training routine self._results = trainer.run_stage() # Make sure all workers have finished training before returning to the user diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index efb58fc844696..e628d6d96bd19 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -53,3 +53,8 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): " `Trainer`, it can only be 'simple' or 'advanced'" ) self.trainer.profiler = profiler or PassThroughProfiler() + + def setup(self) -> None: + trainer = self.trainer + local_rank = trainer.local_rank if trainer.world_size > 1 else None + trainer.profiler.setup(stage=trainer._setup_state, local_rank=local_rank, log_dir=trainer.log_dir) diff --git a/pytorch_lightning/trainer/properties.py b/pytorch_lightning/trainer/properties.py index b5654b148afc6..315e3c60c0557 100644 --- a/pytorch_lightning/trainer/properties.py +++ b/pytorch_lightning/trainer/properties.py @@ -491,6 +491,16 @@ def sanity_checking(self, val: bool) -> None: elif self.sanity_checking: self._running_stage = None + @property + def _setup_state(self) -> TrainerState: + # 'fit' is passed for `trainer.tune()` as there aren't "tune_dataloaders" + return TrainerState.FITTING if self.state == TrainerState.TUNING else self.state + + @property + def _teardown_state(self) -> Optional[TrainerState]: + if self.state.running: + return self._setup_state + # Used to represent the concrete type TrainerProperties class methods are called on. _T = TypeVar('_T', bound=TrainerProperties) diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index 710f28d113438..f7bd1757b9bc2 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -445,7 +445,7 @@ def fit( | || {self.dispatch} || | || LIGHTNING - {self.accelerator.start_training} || + {self.accelerator.start_training} || or {self.accelerator.start_evaluating} || or {self.accelerator.start_predicting} || FLOW | || @@ -453,7 +453,7 @@ def fit( | || DIRECTION {self.run_train} || or {self.run_evaluation} || - or {self.run_predict} || + or {self.run_predict} || | || results \/ This is used to guide readers to the core loops: train, test, predict. @@ -518,13 +518,10 @@ def dispatch(self): else: self.accelerator.start_training(self) - def _on_run_stage_setup(self): - self.profiler.setup(self.state, local_rank=self.local_rank if self.world_size > 1 else None, log_dir=self.log_dir) - def run_stage(self): results = None - self._on_run_stage_setup() + self.profile_connector.setup() if self.evaluating: results = self.run_evaluate() @@ -1068,8 +1065,7 @@ def tune( def call_setup_hook(self, model: LightningModule) -> None: assert self.state.running, f"TrainerState: {self.state}" - # 'fit' is passed for `trainer.tune()` as there aren't "tune_dataloaders" - state = TrainerState.FITTING if self.state == TrainerState.TUNING else self.state + state = self._setup_state if self.datamodule is not None: called = getattr(self.datamodule, f'has_setup_{state}') @@ -1080,11 +1076,7 @@ def call_setup_hook(self, model: LightningModule) -> None: model.setup(stage=state) def call_teardown_hook(self, model: LightningModule) -> None: - if self.state.running: - state = TrainerState.FITTING if self.state == TrainerState.TUNING else self.state - else: - state = None - + state = self._teardown_state self.profiler.teardown(stage=state) self.teardown(stage=state) model.teardown(stage=state) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 2ebf1c2845fdd..89ed2004af7ae 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -20,7 +20,7 @@ import pytest import torch -from pytorch_lightning import Trainer +from pytorch_lightning import Trainer, Callback from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -327,14 +327,15 @@ def test_profiler_teardown(tmpdir, cls): """ This test checks if profiler teardown method is called when trainer is exiting. """ + class TestCallback(Callback): + + def on_fit_end(self, trainer, *args, **kwargs) -> None: + assert trainer.profiler._output_file is not None + profiler = cls(dirpath=tmpdir, filename="profiler") model = BoringModel() - trainer = Trainer( - default_root_dir=tmpdir, - fast_dev_run=True, - profiler=profiler, - ) + trainer = Trainer(default_root_dir=tmpdir, fast_dev_run=True, profiler=profiler, callbacks=[TestCallback()]) trainer.fit(model) assert profiler._output_file.closed From dd1dce067da0208e1a54a01505f65fe3b5850d30 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 19:28:30 +0100 Subject: [PATCH 058/126] Pass stage in __del__ --- pytorch_lightning/profiler/profilers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index bd889c24c2bf4..14a354020b0cb 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -185,7 +185,7 @@ def teardown(self, stage: Optional[str] = None) -> None: self._output_file.close() def __del__(self) -> None: - self.teardown() + self.teardown(stage=self._stage) def start(self, action_name: str) -> None: raise NotImplementedError From 097a42644aeca82026a78a4aca8b86507d6f5d68 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 19:56:20 +0100 Subject: [PATCH 059/126] Remove TODOs --- pytorch_lightning/profiler/profilers.py | 2 +- pytorch_lightning/trainer/training_loop.py | 4 +--- tests/test_profiler.py | 8 +++----- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 18d5a317739ff..99a898f78e557 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -179,7 +179,7 @@ def teardown(self, stage: Optional[str] = None) -> None: """ Execute arbitrary post-profiling tear-down steps. - Closes currently open file and stream. + Closes the currently open file and stream. """ assert stage == self._stage self._write_stream = None diff --git a/pytorch_lightning/trainer/training_loop.py b/pytorch_lightning/trainer/training_loop.py index 384a1b67a64f8..cc471f76b6033 100644 --- a/pytorch_lightning/trainer/training_loop.py +++ b/pytorch_lightning/trainer/training_loop.py @@ -137,9 +137,7 @@ def on_train_end(self): self.trainer.logger.finalize("success") # summarize profile results - # todo (tchaton) All ranks should call describe. - if self.trainer.global_rank == 0: - self.trainer.profiler.describe() + self.trainer.profiler.describe() # give accelerators a chance to finish self.trainer.accelerator.on_train_end() diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 89ed2004af7ae..431358064c7ab 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -255,11 +255,9 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): assert len(pytorch_profiler.summary()) > 0 assert set(pytorch_profiler.profiled_actions.keys()) == {'training_step_and_backward', 'validation_step'} - # todo (tchaton) add support for all ranks - if os.getenv("LOCAL_RANK") == "0": - path = pytorch_profiler.dirpath / pytorch_profiler.filename - data = path.read_text("utf-8") - assert len(data) > 0 + path = pytorch_profiler.dirpath / pytorch_profiler.filename + data = path.read_text("utf-8") + assert len(data) > 0 def test_pytorch_profiler_nested(tmpdir): From 4d529fa90f64d9da205011c2b42abe741f6e6f89 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 20:34:10 +0100 Subject: [PATCH 060/126] Describe on_evaluation_end. Add tests --- pytorch_lightning/profiler/profilers.py | 8 ++-- pytorch_lightning/trainer/evaluation_loop.py | 5 +++ tests/test_profiler.py | 47 ++++++++++++++++---- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 99a898f78e557..481f107dbf1b9 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -155,7 +155,7 @@ def describe(self) -> None: self.teardown(stage=self._stage) def _stats_to_str(self, stats: Dict[str, str]) -> str: - output = ["Profiler Report"] + output = [f"{self._stage} " if self._stage is not None else "" + "Profiler report"] for action, value in stats.items(): header = f"Profile stats for: {action}" if self._local_rank is not None: @@ -181,7 +181,6 @@ def teardown(self, stage: Optional[str] = None) -> None: Closes the currently open file and stream. """ - assert stage == self._stage self._write_stream = None if self._output_file is not None: self._output_file.close() @@ -269,7 +268,10 @@ def _make_report(self) -> Tuple[list, float]: def summary(self) -> str: sep = os.linesep - output_string = f"Profiler Report{sep}" + output_string = "" + if self._stage is not None: + output_string += f"{self._stage.upper()} " + output_string += f"Profiler Report{sep}" if self.extended: diff --git a/pytorch_lightning/trainer/evaluation_loop.py b/pytorch_lightning/trainer/evaluation_loop.py index 20c842939fe17..da41b9855b44a 100644 --- a/pytorch_lightning/trainer/evaluation_loop.py +++ b/pytorch_lightning/trainer/evaluation_loop.py @@ -15,6 +15,7 @@ import torch from pytorch_lightning.core.step_result import Result +from pytorch_lightning.trainer.states import TrainerState from pytorch_lightning.trainer.supporters import PredictionCollection from pytorch_lightning.utilities.apply_func import apply_to_collection from pytorch_lightning.utilities.model_helpers import is_overridden @@ -99,6 +100,10 @@ def on_evaluation_end(self, *args, **kwargs): else: self.trainer.call_hook('on_validation_end', *args, **kwargs) + if self.trainer.state != TrainerState.FITTING: + # summarize profile results + self.trainer.profiler.describe() + def reload_evaluation_dataloaders(self): model = self.trainer.lightning_module if self.trainer.testing: diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 431358064c7ab..8104745dddcab 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -90,14 +90,6 @@ def test_simple_profiler_overhead(simple_profiler, n_iter=5): assert all(durations < PROFILER_OVERHEAD_MAX_TOLERANCE) -def test_simple_profiler_describe(caplog, simple_profiler): - """Ensure the profiler won't fail when reporting the summary.""" - with caplog.at_level(logging.INFO): - simple_profiler.describe() - - assert "Profiler Report" in caplog.text - - def test_simple_profiler_value_errors(simple_profiler): """Ensure errors are raised where expected.""" @@ -132,6 +124,45 @@ def test_simple_profiler_log_dir(tmpdir): assert expected.join("fit-profiler.txt").exists() +def test_simple_profiler_distributed_files(tmpdir): + """Ensure the proper files are saved in distributed""" + profiler = SimpleProfiler(dirpath=tmpdir, filename='profiler') + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + fast_dev_run=2, + accelerator="ddp_cpu", + num_processes=2, + profiler=profiler, + logger=False, + ) + trainer.fit(model) + trainer.test(model) + + actual = set(os.listdir(profiler.dirpath)) + expected = {'fit-profiler-0.txt', 'fit-profiler-1.txt', 'test-profiler-0.txt', 'test-profiler-1.txt'} + assert actual == expected + + for f in profiler.dirpath.listdir(): + assert f.read_text('utf-8') + + +def test_simple_profiler_logs(tmpdir, caplog, simple_profiler): + """Ensure that the number of printed logs is correct""" + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + fast_dev_run=2, + profiler=simple_profiler, + logger=False, + ) + with caplog.at_level(logging.INFO, logger="pytorch_lightning.profiler.profilers"): + trainer.fit(model) + trainer.test(model) + + assert caplog.text.count("Profiler Report") == 2 + + @pytest.fixture def advanced_profiler(tmpdir): return AdvancedProfiler(dirpath=tmpdir, filename="profiler") From 58dcd4e4a9ecc52325ec6739f386a55a2dfb3e73 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 20:35:42 +0100 Subject: [PATCH 061/126] Typo --- pytorch_lightning/profiler/profilers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 481f107dbf1b9..ac12be5c5897a 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -155,7 +155,7 @@ def describe(self) -> None: self.teardown(stage=self._stage) def _stats_to_str(self, stats: Dict[str, str]) -> str: - output = [f"{self._stage} " if self._stage is not None else "" + "Profiler report"] + output = [f"{self._stage} " if self._stage is not None else "" + "Profiler Report"] for action, value in stats.items(): header = f"Profile stats for: {action}" if self._local_rank is not None: From c37162f1cc22a444a5ee629e080b4da1fc633bfd Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 20:45:05 +0100 Subject: [PATCH 062/126] Address comments --- pytorch_lightning/profiler/profilers.py | 6 +++--- tests/test_profiler.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index ac12be5c5897a..9754ffb3122d1 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -22,7 +22,7 @@ from collections import defaultdict from contextlib import contextmanager from pathlib import Path -from typing import Dict, Optional, Tuple, Union, TextIO, Callable +from typing import Dict, Optional, Tuple, Union, TextIO, Callable, Any import numpy as np @@ -48,11 +48,11 @@ def summary(self) -> str: """Create profiler summary in text format.""" @abstractmethod - def setup(self) -> None: + def setup(self, **kwargs: Any) -> None: """Execute arbitrary pre-profiling set-up steps as defined by subclass.""" @abstractmethod - def teardown(self) -> None: + def teardown(self, **kwargs: Any) -> None: """Execute arbitrary post-profiling tear-down steps as defined by subclass.""" diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 8104745dddcab..c8d68ef66cf4a 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -137,10 +137,11 @@ def test_simple_profiler_distributed_files(tmpdir): logger=False, ) trainer.fit(model) + trainer.validate(model) trainer.test(model) actual = set(os.listdir(profiler.dirpath)) - expected = {'fit-profiler-0.txt', 'fit-profiler-1.txt', 'test-profiler-0.txt', 'test-profiler-1.txt'} + expected = {f"{stage}-profiler-{rank}.txt" for stage in ("fit", "validate", "test") for rank in (0, 1)} assert actual == expected for f in profiler.dirpath.listdir(): From 4c5f1f3aacb483a6a0216ebf5995242fbe78426a Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 21:03:24 +0100 Subject: [PATCH 063/126] deepcopy tests --- pytorch_lightning/profiler/profilers.py | 3 ++- tests/test_profiler.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 9754ffb3122d1..a1be0bf4d5885 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -178,12 +178,13 @@ def setup( def teardown(self, stage: Optional[str] = None) -> None: """ Execute arbitrary post-profiling tear-down steps. - + Closes the currently open file and stream. """ self._write_stream = None if self._output_file is not None: self._output_file.close() + self._output_file = None # can't pickle TextIOWrapper def __del__(self) -> None: self.teardown(stage=self._stage) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index c8d68ef66cf4a..e1bdc67938ec0 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -14,6 +14,7 @@ import logging import os import time +from copy import deepcopy from distutils.version import LooseVersion import numpy as np @@ -105,6 +106,12 @@ def test_simple_profiler_value_errors(simple_profiler): simple_profiler.stop(action) +def test_simple_profiler_deepcopy(tmpdir): + simple_profiler = SimpleProfiler(dirpath=tmpdir, filename="test") + simple_profiler.describe() + assert deepcopy(simple_profiler) + + def test_simple_profiler_log_dir(tmpdir): """Ensure the profiler dirpath defaults to `trainer.log_dir` when not present""" profiler = SimpleProfiler(filename="profiler") @@ -243,6 +250,11 @@ def test_advanced_profiler_value_errors(advanced_profiler): advanced_profiler.stop(action) +def test_advanced_profiler_deepcopy(advanced_profiler): + advanced_profiler.describe() + assert deepcopy(advanced_profiler) + + @pytest.fixture def pytorch_profiler(tmpdir): return PyTorchProfiler(dirpath=tmpdir, filename="profiler") @@ -369,3 +381,8 @@ def on_fit_end(self, trainer, *args, **kwargs) -> None: trainer.fit(model) assert profiler._output_file.closed + + +def test_pytorch_profiler_deepcopy(pytorch_profiler): + pytorch_profiler.describe() + assert deepcopy(pytorch_profiler) From 5ed73fbeafd107bd4573ae21a056abd1b8c8d0f4 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 21:16:29 +0100 Subject: [PATCH 064/126] Advanced teardown --- pytorch_lightning/profiler/profilers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index a1be0bf4d5885..766dd94ff93d9 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -344,7 +344,7 @@ def __init__( If you attempt to stop recording an action which was never started. """ super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) - self.profiled_actions = {} + self.profiled_actions: Dict[str, cProfile.Profile] = {} self.line_count_restriction = line_count_restriction def start(self, action_name: str) -> None: @@ -366,3 +366,7 @@ def summary(self) -> str: ps.print_stats(self.line_count_restriction) recorded_stats[action_name] = s.getvalue() return self._stats_to_str(recorded_stats) + + def teardown(self, stage: Optional[str] = None) -> None: + super().teardown(stage=stage) + self.profiled_actions = {} From 897f8e52247bc022a59b632a38621d31d05896c5 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 21:19:57 +0100 Subject: [PATCH 065/126] Fix teardown test --- tests/test_profiler.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index e1bdc67938ec0..29455e4d532b1 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -370,17 +370,16 @@ def test_profiler_teardown(tmpdir, cls): This test checks if profiler teardown method is called when trainer is exiting. """ class TestCallback(Callback): - def on_fit_end(self, trainer, *args, **kwargs) -> None: - assert trainer.profiler._output_file is not None + # describe sets it to None + assert trainer.profiler._output_file is None profiler = cls(dirpath=tmpdir, filename="profiler") - model = BoringModel() trainer = Trainer(default_root_dir=tmpdir, fast_dev_run=True, profiler=profiler, callbacks=[TestCallback()]) trainer.fit(model) - assert profiler._output_file.closed + assert profiler._output_file is None def test_pytorch_profiler_deepcopy(pytorch_profiler): From e42be2a5afd920dcc9178c3b6dfaed80a2f67df0 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 22:10:49 +0100 Subject: [PATCH 066/126] Fix tests --- tests/test_profiler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 29455e4d532b1..12f6526fb217e 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -131,6 +131,7 @@ def test_simple_profiler_log_dir(tmpdir): assert expected.join("fit-profiler.txt").exists() +@RunIf(skip_windows=True) def test_simple_profiler_distributed_files(tmpdir): """Ensure the proper files are saved in distributed""" profiler = SimpleProfiler(dirpath=tmpdir, filename='profiler') @@ -299,7 +300,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): assert len(pytorch_profiler.summary()) > 0 assert set(pytorch_profiler.profiled_actions.keys()) == {'training_step_and_backward', 'validation_step'} - path = pytorch_profiler.dirpath / pytorch_profiler.filename + path = pytorch_profiler.dirpath / f"{pytorch_profiler.filename}.txt" data = path.read_text("utf-8") assert len(data) > 0 From 32c301cd575d828cc9decec95b43c7e31c234e35 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 22:12:06 +0100 Subject: [PATCH 067/126] Minor change --- tests/test_profiler.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 12f6526fb217e..3b9f96350d891 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -301,8 +301,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): assert set(pytorch_profiler.profiled_actions.keys()) == {'training_step_and_backward', 'validation_step'} path = pytorch_profiler.dirpath / f"{pytorch_profiler.filename}.txt" - data = path.read_text("utf-8") - assert len(data) > 0 + assert path.read_text("utf-8") def test_pytorch_profiler_nested(tmpdir): From af0c8adce8a734ddbddb6ea5cf3f8658e2979d74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mochol=C3=AD?= Date: Mon, 22 Mar 2021 22:17:19 +0100 Subject: [PATCH 068/126] Update CHANGELOG.md --- CHANGELOG.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e188d5968cf77..1c0dfd5a482b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,9 +54,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Added `AbstractProfiler` interface ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) -- Added `setup` method to `BaseProfiler` to enable subclasses defining pre-profiling steps ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) - - - Added `outputs` parameter to callback's `on_validation_epoch_end` & `on_test_epoch_end` hooks ([#6120](https://github.com/PyTorchLightning/pytorch-lightning/pull/6120)) From 29a73c57c1e5d437be54a040f890f8c3288a4778 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 22:43:33 +0100 Subject: [PATCH 069/126] Fix test --- tests/test_profiler.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 3b9f96350d891..dca14f9a02736 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -298,10 +298,14 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): trainer.fit(model) assert len(pytorch_profiler.summary()) > 0 - assert set(pytorch_profiler.profiled_actions.keys()) == {'training_step_and_backward', 'validation_step'} + assert set(pytorch_profiler.profiled_actions) == {'training_step_and_backward', 'validation_step'} - path = pytorch_profiler.dirpath / f"{pytorch_profiler.filename}.txt" - assert path.read_text("utf-8") + actual = set(os.listdir(pytorch_profiler.dirpath)) + expected = {f"fit-profiler-{rank}.txt" for rank in (0, 1)} + assert actual == expected + + for f in pytorch_profiler.dirpath.listdir(): + assert f.read_text('utf-8') def test_pytorch_profiler_nested(tmpdir): From 0dc1e065f4b03747ae907ecd4fd242b2df6ef3d0 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Mon, 22 Mar 2021 23:42:54 +0100 Subject: [PATCH 070/126] Quick fixes --- .gitignore | 2 +- pytorch_lightning/profiler/pytorch.py | 12 +++++----- .../trainer/connectors/profiler_connector.py | 3 ++- tests/test_profiler.py | 23 ++----------------- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index c007140257188..99939ff7fce0c 100644 --- a/.gitignore +++ b/.gitignore @@ -157,4 +157,4 @@ tags data MNIST runs -*traces* +*trace* diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index f72dcba802612..4cb62c26ea4db 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -235,8 +235,8 @@ def setup( # if the user didn't provide `path_to_export_trace`, # set it as TensorBoardLogger log_dir if exists - if self.path_to_export_trace is None: - self.path_to_export_trace = log_dir + if self._path_to_export_trace is None: + self._path_to_export_trace = log_dir def start(self, action_name: str) -> None: if not self._profiler_instantiated and action_name in ( @@ -278,7 +278,7 @@ def summary(self) -> str: if not self._profiler_kwargs.get("enabled", True): return "" - local_rank = 0 if self.local_rank is None else self.local_rank + local_rank = 0 if self._local_rank is None else self._local_rank self.profiler.__exit__(None, None, None) if not self._emit_nvtx: @@ -309,7 +309,7 @@ def summary(self) -> str: recorded_stats = {} recorded_stats["records"] = table - return self.stats_to_str(recorded_stats) + return self._stats_to_str(recorded_stats) def _create_profilers(self) -> None: if self._emit_nvtx: @@ -321,10 +321,10 @@ def _create_profilers(self) -> None: def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters - kwargs = {k: v for k, v in vars(self).items() if k in init_parameters} + kwargs = {k: v for k, v in self._profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) - def teardown(self): + def teardown(self, stage: Optional[str] = None) -> None: if self.profiler is not None: self.profiler.__exit__(None, None, None) diff --git a/pytorch_lightning/trainer/connectors/profiler_connector.py b/pytorch_lightning/trainer/connectors/profiler_connector.py index e628d6d96bd19..191e8711463ab 100644 --- a/pytorch_lightning/trainer/connectors/profiler_connector.py +++ b/pytorch_lightning/trainer/connectors/profiler_connector.py @@ -11,8 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License - from typing import Union +from weakref import proxy from pytorch_lightning.profiler import ( AdvancedProfiler, @@ -57,4 +57,5 @@ def on_trainer_init(self, profiler: Union[BaseProfiler, str]): def setup(self) -> None: trainer = self.trainer local_rank = trainer.local_rank if trainer.world_size > 1 else None + trainer.profiler.lightning_module = proxy(trainer.lightning_module) trainer.profiler.setup(stage=trainer._setup_state, local_rank=local_rank, log_dir=trainer.log_dir) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index f275dc7c0e08e..423ab3e9ecb7b 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -289,25 +289,6 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): - """Ensure that the profiler can be given to the training and default step are properly recorded. """ - model = BoringModel() - trainer = Trainer( - max_epochs=1, - default_root_dir=tmpdir, - limit_train_batches=6, - limit_val_batches=6, - profiler=pytorch_profiler, - accelerator="ddp", - gpus=2, - logger=TensorBoardLogger(tmpdir) - ) - trainer.fit(model) - - path = pytorch_profiler.dirpath / f"{pytorch_profiler.filename}.txt" - assert path.read_text("utf-8") - - def test_pytorch_profiler_trainer_fit(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the trainer and training, validation steps are properly recorded. """ @@ -349,7 +330,7 @@ def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 - path = pytorch_profiler.dirpath / f"{pytorch_profiler.filename}.txt" + path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") @@ -367,7 +348,7 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): assert len([e for e in pytorch_profiler.function_events if 'predict' == e.name]) > 0 - path = pytorch_profiler.dirpath / f"{pytorch_profiler.filename}.txt" + path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") From cb756b813573c8619936c32cdf528d623c4794d8 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 00:32:52 +0100 Subject: [PATCH 071/126] Fix 6522 --- .gitignore | 2 +- pytorch_lightning/profiler/profilers.py | 13 +++++++++++-- tests/test_profiler.py | 16 +++++++++++++++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index c007140257188..99939ff7fce0c 100644 --- a/.gitignore +++ b/.gitignore @@ -157,4 +157,4 @@ tags data MNIST runs -*traces* +*trace* diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 766dd94ff93d9..3875514621025 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -22,7 +22,7 @@ from collections import defaultdict from contextlib import contextmanager from pathlib import Path -from typing import Dict, Optional, Tuple, Union, TextIO, Callable, Any +from typing import Any, Callable, Dict, Optional, TextIO, Tuple, Union import numpy as np @@ -155,7 +155,8 @@ def describe(self) -> None: self.teardown(stage=self._stage) def _stats_to_str(self, stats: Dict[str, str]) -> str: - output = [f"{self._stage} " if self._stage is not None else "" + "Profiler Report"] + stage = f"{self._stage.upper()} " if self._stage is not None else "" + output = [stage + "Profiler Report"] for action, value in stats.items(): header = f"Profile stats for: {action}" if self._local_rank is not None: @@ -370,3 +371,11 @@ def summary(self) -> str: def teardown(self, stage: Optional[str] = None) -> None: super().teardown(stage=stage) self.profiled_actions = {} + + def __reduce__(self): + # avoids `TypeError: cannot pickle 'cProfile.Profile' object` + return ( + self.__class__, + tuple(), + dict(dirpath=self.dirpath, filename=self.filename, line_count_restriction=self.line_count_restriction), + ) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index dca14f9a02736..4ec259101dc4a 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -21,7 +21,7 @@ import pytest import torch -from pytorch_lightning import Trainer, Callback +from pytorch_lightning import Callback, Trainer from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -284,6 +284,18 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): pytorch_profiler.stop(action) +def test_advanced_profiler_cprofile_deepcopy(tmpdir): + """Checks for pickle issue reported in #6522""" + model = BoringModel() + trainer = Trainer( + default_root_dir=tmpdir, + fast_dev_run=True, + profiler="advanced", + stochastic_weight_avg=True, + ) + trainer.fit(model) + + @RunIf(min_gpus=2, special=True) def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the training and default step are properly recorded. """ @@ -373,7 +385,9 @@ def test_profiler_teardown(tmpdir, cls): """ This test checks if profiler teardown method is called when trainer is exiting. """ + class TestCallback(Callback): + def on_fit_end(self, trainer, *args, **kwargs) -> None: # describe sets it to None assert trainer.profiler._output_file is None From 758b9420499daa7824efe94cee5369323a09967b Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 08:41:11 +0000 Subject: [PATCH 072/126] resolve ddp tests --- pytorch_lightning/profiler/profilers.py | 11 ++++++++--- pytorch_lightning/profiler/pytorch.py | 4 +--- tests/test_profiler.py | 22 ++++++++++++++-------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 3875514621025..42c9539185fc9 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -124,9 +124,8 @@ def _prepare_filename(self) -> str: filename = "" if self._stage is not None: filename += f"{self._stage}-" - filename += self.filename - if self._local_rank is not None: - filename += f"-{self._local_rank}" + filename += str(self.filename) + filename += f"-{self.local_rank}" filename += ".txt" return filename @@ -175,6 +174,8 @@ def setup( self._stage = stage self._local_rank = local_rank self._log_dir = log_dir + if self.dirpath is None: + self.dirpath = self._log_dir def teardown(self, stage: Optional[str] = None) -> None: """ @@ -199,6 +200,10 @@ def stop(self, action_name: str) -> None: def summary(self) -> str: raise NotImplementedError + @property + def local_rank(self): + return '0' if self._local_rank is None else self._local_rank + class PassThroughProfiler(BaseProfiler): """ diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 85b3ec7d8d2ed..55b1c286789f4 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -239,7 +239,6 @@ def stop(self, action_name: str) -> None: def summary(self) -> str: recorded_stats = {} output_string = '' - local_rank = '0' if self._local_rank is None else self._local_rank if not self.enabled: return output_string @@ -252,7 +251,7 @@ def summary(self) -> str: function_events.populate_cpu_children = lambda: None if self.export_to_chrome: - filename = f"{action_name}_{local_rank}_trace.json" + filename = f"{action_name}_{self.local_rank}_trace.json" path_to_trace = filename if self.path_to_export_trace is None \ else os.path.join(self.path_to_export_trace, filename) function_events.export_chrome_trace(path_to_trace) @@ -264,5 +263,4 @@ def summary(self) -> str: data = function_events.key_averages(group_by_input_shapes=self.group_by_input_shapes) table = data.table(sort_by=self.sort_by_key, row_limit=self.row_limit) recorded_stats[action_name] = table - return self._stats_to_str(recorded_stats) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 4ec259101dc4a..5114d39d209ea 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -13,6 +13,7 @@ # limitations under the License. import logging import os +from pathlib import Path import time from copy import deepcopy from distutils.version import LooseVersion @@ -297,12 +298,15 @@ def test_advanced_profiler_cprofile_deepcopy(tmpdir): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_ddp(tmpdir): """Ensure that the profiler can be given to the training and default step are properly recorded. """ + pytorch_profiler = PyTorchProfiler(dirpath=None, filename="profiler") model = BoringModel() trainer = Trainer( + max_epochs=1, default_root_dir=tmpdir, - fast_dev_run=True, + limit_train_batches=2, + limit_val_batches=2, profiler=pytorch_profiler, accelerator="ddp", gpus=2, @@ -312,12 +316,14 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): assert len(pytorch_profiler.summary()) > 0 assert set(pytorch_profiler.profiled_actions) == {'training_step_and_backward', 'validation_step'} - actual = set(os.listdir(pytorch_profiler.dirpath)) - expected = {f"fit-profiler-{rank}.txt" for rank in (0, 1)} - assert actual == expected - - for f in pytorch_profiler.dirpath.listdir(): - assert f.read_text('utf-8') + files = sorted(f for f in os.listdir(pytorch_profiler.dirpath) if "fit" in f) + rank = int(os.getenv("LOCAL_RANK", "0")) + expected = f"fit-profiler-{rank}.txt" + assert files[rank] == expected + + path = os.path.join(pytorch_profiler.dirpath, expected) + data = Path(path).read_text("utf-8") + assert len(data) > 0 def test_pytorch_profiler_nested(tmpdir): From fca4eb2d2753e75721a4a089d48d5d8250ebaacc Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 08:44:24 +0000 Subject: [PATCH 073/126] resolve tests --- tests/test_profiler.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 5114d39d209ea..b6728a8b0ac1f 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -13,10 +13,10 @@ # limitations under the License. import logging import os -from pathlib import Path import time from copy import deepcopy from distutils.version import LooseVersion +from pathlib import Path import numpy as np import pytest @@ -285,6 +285,7 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): pytorch_profiler.stop(action) +@RunIf(min_torch="1.6.0") def test_advanced_profiler_cprofile_deepcopy(tmpdir): """Checks for pickle issue reported in #6522""" model = BoringModel() @@ -320,7 +321,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): rank = int(os.getenv("LOCAL_RANK", "0")) expected = f"fit-profiler-{rank}.txt" assert files[rank] == expected - + path = os.path.join(pytorch_profiler.dirpath, expected) data = Path(path).read_text("utf-8") assert len(data) > 0 From 2919a392610e5f474b1434c8a3160172722b9a71 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 09:14:06 +0000 Subject: [PATCH 074/126] resolve some tests --- pytorch_lightning/profiler/profilers.py | 3 ++- tests/test_profiler.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 42c9539185fc9..54bc5cdf0122c 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -125,7 +125,8 @@ def _prepare_filename(self) -> str: if self._stage is not None: filename += f"{self._stage}-" filename += str(self.filename) - filename += f"-{self.local_rank}" + if self._local_rank is not None: + filename += f"-{self.local_rank}" filename += ".txt" return filename diff --git a/tests/test_profiler.py b/tests/test_profiler.py index b6728a8b0ac1f..cf6afcc9b626c 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -126,10 +126,10 @@ def test_simple_profiler_log_dir(tmpdir): ) trainer.fit(model) - expected = tmpdir / "lightning_logs" / "version_0" + expected = profiler.dirpath assert trainer.log_dir == expected assert profiler._log_dir == trainer.log_dir - assert expected.join("fit-profiler.txt").exists() + assert Path(os.path.join(profiler.dirpath, "fit-profiler.txt")).exists() @RunIf(skip_windows=True) From d7ca5fa8563b559fc20b32e4d0334b7d8ace15e1 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 09:31:51 +0000 Subject: [PATCH 075/126] update tests --- tests/trainer/properties/test_get_model.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/trainer/properties/test_get_model.py b/tests/trainer/properties/test_get_model.py index 4dc5b5f34b50c..af0cc291154c0 100644 --- a/tests/trainer/properties/test_get_model.py +++ b/tests/trainer/properties/test_get_model.py @@ -84,8 +84,7 @@ def test_get_model_gpu(tmpdir): @RunIf(min_gpus=1, skip_windows=True) -@DDPLauncher.run("--accelerator [accelerator]", max_epochs=["1"], accelerator=["ddp", "ddp_spawn"]) -def test_get_model_ddp_gpu(tmpdir, args=None): +def test_get_model_ddp_gpu(tmpdir): """ Tests that `trainer.lightning_module` extracts the model correctly when using GPU + ddp accelerators """ @@ -99,7 +98,6 @@ def test_get_model_ddp_gpu(tmpdir, args=None): limit_val_batches=2, max_epochs=1, gpus=1, - accelerator=args.accelerator ) trainer.fit(model) return 1 From b3ffe64ebc28bfb104d05954063efb57974dcd62 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 10:01:41 +0000 Subject: [PATCH 076/126] resolve tests --- tests/test_profiler.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index dcb66449b7398..038346277bc1b 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -27,6 +27,7 @@ from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler from pytorch_lightning.profiler.pytorch import RegisterRecordFunction from pytorch_lightning.utilities.exceptions import MisconfigurationException +from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8 from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -504,6 +505,7 @@ def on_fit_end(self, trainer, *args, **kwargs) -> None: assert profiler._output_file is None +@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="currently not supported for PyTorch 1.8") def test_pytorch_profiler_deepcopy(pytorch_profiler): pytorch_profiler.start("on_train_start") pytorch_profiler.describe() From ecd1fd22e7e3061bbebed63765f9433d83e25983 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 10:42:01 +0000 Subject: [PATCH 077/126] update --- pl_examples/basic_examples/profiler_example.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pl_examples/basic_examples/profiler_example.py b/pl_examples/basic_examples/profiler_example.py index 74ee25d4f61cc..ae19c9de9ab41 100644 --- a/pl_examples/basic_examples/profiler_example.py +++ b/pl_examples/basic_examples/profiler_example.py @@ -33,7 +33,9 @@ from pl_examples import cli_lightning_logo from pytorch_lightning import LightningDataModule, LightningModule, Trainer -DEFAULT_CMD_LINE = "--max_epochs 1 --limit_train_batches 15 --limit_val_batches 15 --profiler pytorch".split(" ") +DEFAULT_CMD_LINE = f"--max_epochs 1 --limit_train_batches 15 --limit_val_batches 15 --profiler pytorch --gpus {torch.cuda.is_available()}".split( + " " +) class ModelToProfile(LightningModule): From 97c87d37a7bb8d65af3e35c645edc998981e6b6d Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 11:59:20 +0000 Subject: [PATCH 078/126] resolve tests --- tests/test_profiler.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index e901a76450106..5719c79d7a1b9 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -504,5 +504,6 @@ def on_fit_end(self, trainer, *args, **kwargs) -> None: @pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="currently not supported for PyTorch 1.8") def test_pytorch_profiler_deepcopy(pytorch_profiler): pytorch_profiler.start("on_train_start") + torch.tensor(1) pytorch_profiler.describe() assert deepcopy(pytorch_profiler) From 172b3885dd037a739a89dec8112078dafe1fff6a Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 12:17:16 +0000 Subject: [PATCH 079/126] resolve some tests --- pytorch_lightning/profiler/pytorch.py | 1 + tests/test_profiler.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index dd2b6f709af38..b721cd5964f75 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -265,6 +265,7 @@ def __init__( self._parent_profiler = None self._recording_map: Dict[str, record_function] = {} self._profiler_instantiated: bool = False + self._schedule: Optional[ScheduleWrapper] = None if _TORCH_GREATER_EQUAL_1_8: schedule = profiler_kwargs.get("schedule", None) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 6b1f879a98e72..cdd4da3d6fd31 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -383,8 +383,8 @@ def test_pytorch_profiler_trainer_predict(tmpdir): if not _TORCH_GREATER_EQUAL_1_8: assert len([e for e in pytorch_profiler.function_events if 'predict' == e.name]) > 0 - data = Path(pytorch_profiler.output_fname).read_text() - assert len(data) > 0 + path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" + assert path.read_text("utf-8") else: files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) assert 'predict_0' in files[0] @@ -545,5 +545,6 @@ def on_fit_end(self, trainer, *args, **kwargs) -> None: @pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="currently not supported for PyTorch 1.8") def test_pytorch_profiler_deepcopy(pytorch_profiler): pytorch_profiler.start("on_train_start") + torch.tensor(1) pytorch_profiler.describe() assert deepcopy(pytorch_profiler) From ae31f00a33d023aefef890e3c9cabf49cf13a565 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 13:38:25 +0100 Subject: [PATCH 080/126] Missed fixes from 3/5 --- pytorch_lightning/profiler/profilers.py | 12 +++++------ pytorch_lightning/profiler/pytorch.py | 4 +--- tests/checkpointing/test_torch_saving.py | 3 +-- tests/test_profiler.py | 25 ++++++++-------------- tests/trainer/properties/test_get_model.py | 20 ----------------- 5 files changed, 16 insertions(+), 48 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 54bc5cdf0122c..1cd49a223af65 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -126,7 +126,7 @@ def _prepare_filename(self) -> str: filename += f"{self._stage}-" filename += str(self.filename) if self._local_rank is not None: - filename += f"-{self.local_rank}" + filename += f"-{self._local_rank}" filename += ".txt" return filename @@ -134,8 +134,7 @@ def _prepare_streams(self) -> None: if self._write_stream is not None: return if self.filename: - dirpath = self.dirpath or self._log_dir - filepath = os.path.join(dirpath, self._prepare_filename()) + filepath = os.path.join(self.dirpath, self._prepare_filename()) fs = get_filesystem(filepath) file = fs.open(filepath, "a") self._output_file = file @@ -175,8 +174,7 @@ def setup( self._stage = stage self._local_rank = local_rank self._log_dir = log_dir - if self.dirpath is None: - self.dirpath = self._log_dir + self.dirpath = self.dirpath or local_rank def teardown(self, stage: Optional[str] = None) -> None: """ @@ -202,8 +200,8 @@ def summary(self) -> str: raise NotImplementedError @property - def local_rank(self): - return '0' if self._local_rank is None else self._local_rank + def local_rank(self) -> int: + return 0 if self._local_rank is None else self._local_rank class PassThroughProfiler(BaseProfiler): diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index fe4ec89a5dd2c..9aa0ff3d5c925 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -275,8 +275,6 @@ def summary(self) -> str: if not self._profiler_kwargs.get("enabled", True): return "" - local_rank = 0 if self._local_rank is None else self._local_rank - self.profiler.__exit__(None, None, None) if not self._emit_nvtx: self.function_events = self.profiler.function_events @@ -294,7 +292,7 @@ def summary(self) -> str: return "" if self._export_to_chrome: - filename = f"{local_rank}_trace.json" + filename = f"{self.local_rank}_trace.json" path_to_trace = ( filename if self._path_to_export_trace is None else os.path.join(self._path_to_export_trace, filename) ) diff --git a/tests/checkpointing/test_torch_saving.py b/tests/checkpointing/test_torch_saving.py index 0c703a58d57a4..8eabc4640046f 100644 --- a/tests/checkpointing/test_torch_saving.py +++ b/tests/checkpointing/test_torch_saving.py @@ -47,8 +47,7 @@ def test_model_torch_save_ddp_cpu(tmpdir): max_epochs=num_epochs, accelerator="ddp_cpu", num_processes=2, - profiler=None, - logger=None, + logger=False, ) temp_path = os.path.join(tmpdir, 'temp.pt') trainer.fit(model) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 5719c79d7a1b9..99f1d74905a5c 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -130,10 +130,10 @@ def test_simple_profiler_log_dir(tmpdir): ) trainer.fit(model) - expected = profiler.dirpath + expected = tmpdir / "lightning_logs" / "version_0" assert trainer.log_dir == expected assert profiler._log_dir == trainer.log_dir - assert Path(os.path.join(profiler.dirpath, "fit-profiler.txt")).exists() + assert expected.join("fit-profiler.txt").exists() @RunIf(skip_windows=True) @@ -278,15 +278,10 @@ def test_pytorch_profiler_describe(pytorch_profiler): assert len(data) > 0 -def test_pytorch_profiler_value_errors(pytorch_profiler): +def test_pytorch_profiler_raises(pytorch_profiler): """Ensure errors are raised where expected.""" - action = "test_step" - pytorch_profiler.start(action) - pytorch_profiler.stop(action) - with pytest.raises(MisconfigurationException, match="profiled_functions` and `PyTorchProfiler.record"): PyTorchProfiler(profiled_functions=["a"], record_functions=["b"]) - pytorch_profiler.teardown() @RunIf(min_torch="1.6.0") @@ -303,9 +298,8 @@ def test_advanced_profiler_cprofile_deepcopy(tmpdir): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir): +def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the training and default step are properly recorded. """ - pytorch_profiler = PyTorchProfiler(dirpath=None, filename="profiler") model = BoringModel() trainer = Trainer( max_epochs=1, @@ -320,19 +314,18 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') for name in expected: - assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0 + assert sum(e.name == name for e in pytorch_profiler.function_events) assert len(pytorch_profiler.summary()) > 0 assert set(pytorch_profiler.profiled_actions) == {'training_step_and_backward', 'validation_step'} - files = sorted(f for f in os.listdir(pytorch_profiler.dirpath) if "fit" in f) - rank = int(os.getenv("LOCAL_RANK", "0")) + files = set(os.listdir(pytorch_profiler.dirpath)) + rank = int(os.getenv("LOCAL_RANK", 0)) expected = f"fit-profiler-{rank}.txt" - assert files[rank] == expected + assert expected in files path = os.path.join(pytorch_profiler.dirpath, expected) - data = Path(path).read_text("utf-8") - assert len(data) > 0 + assert Path(path).read_text() def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): diff --git a/tests/trainer/properties/test_get_model.py b/tests/trainer/properties/test_get_model.py index 3eb0596b55fc4..5dc1ea5de4e8a 100644 --- a/tests/trainer/properties/test_get_model.py +++ b/tests/trainer/properties/test_get_model.py @@ -80,23 +80,3 @@ def test_get_model_gpu(tmpdir): gpus=1, ) trainer.fit(model) - - -@RunIf(min_gpus=1, skip_windows=True) -def test_get_model_ddp_gpu(tmpdir): - """ - Tests that `trainer.lightning_module` extracts the model correctly when using GPU + ddp accelerators - """ - - model = TrainerGetModel() - - limit_train_batches = 2 - trainer = Trainer( - default_root_dir=tmpdir, - limit_train_batches=limit_train_batches, - limit_val_batches=2, - max_epochs=1, - gpus=1, - ) - trainer.fit(model) - return 1 From 78970d55b8c14d3a02a518e25f1fadb911c7ad47 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 14:03:16 +0100 Subject: [PATCH 081/126] Fixes --- pytorch_lightning/profiler/profilers.py | 2 +- pytorch_lightning/profiler/pytorch.py | 74 +++++++++++++---------- pytorch_lightning/trainer/predict_loop.py | 3 +- 3 files changed, 44 insertions(+), 35 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 1cd49a223af65..46d72583fb466 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -174,7 +174,7 @@ def setup( self._stage = stage self._local_rank = local_rank self._log_dir = log_dir - self.dirpath = self.dirpath or local_rank + self.dirpath = self.dirpath or log_dir def teardown(self, stage: Optional[str] = None) -> None: """ diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 9aa0ff3d5c925..bfcd08146aeab 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -17,16 +17,22 @@ import os from functools import partial from pathlib import Path -from typing import Any, Dict, List, Optional, Type, Union +from typing import Any, Dict, List, Optional, Type, TYPE_CHECKING, Union import torch from torch import nn, Tensor -from torch.autograd.profiler import EventList, record_function +from torch.autograd.profiler import record_function from pytorch_lightning.profiler.profilers import BaseProfiler from pytorch_lightning.utilities.distributed import rank_zero_warn from pytorch_lightning.utilities.exceptions import MisconfigurationException +if TYPE_CHECKING: + from torch.autograd.profiler import EventList + from torch.utils.hooks import RemovableHandle + + from pytorch_lightning.core.lightning import LightningModule + log = logging.getLogger(__name__) _PROFILER = Union[torch.autograd.profiler.profile, torch.cuda.profiler.profile, torch.autograd.profiler.emit_nvtx] @@ -34,40 +40,42 @@ class RegisterRecordFunction: """ - While profiling autograd operations, this class will add label with module name - around the forward function. - The Lightning PyTorch Profiler will activate this feature automatically. - It can be deactivated as follows: + While profiling autograd operations, this class will add labels for module names around the forward function. + + The Lightning PyTorch Profiler will activate this feature automatically. It can be deactivated as follows: + Example:: from pytorch_lightning.profilers import PyTorchProfiler profiler = PyTorchProfiler(record_module_names=False) Trainer(profiler=profiler) + It can be used outside of Lightning as follows: + Example:: from pytorch_lightning import Trainer, seed_everything with RegisterRecordFunction(model): out = model(batch) """ - def __init__(self, model: nn.Module): + def __init__(self, model: nn.Module) -> None: self._model = model - self._records = {} - self.handles = {} + self._records: Dict[str, record_function] = {} + self._handles: Dict[str, List['RemovableHandle']] = {} - def _start_recording_forward(self, module: nn.Module, input: Tensor, record_name: str): + def _start_recording_forward(self, _: nn.Module, input: Tensor, record_name: str) -> Tensor: record = record_function(record_name) record.__enter__() self._records[record_name] = record return input - def _stop_recording_forward(self, module: nn.Module, input: Tensor, output: Tensor, record_name: str): + def _stop_recording_forward(self, _: nn.Module, __: Tensor, output: Tensor, record_name: str) -> Tensor: self._records[record_name].__exit__(None, None, None) return output - def __enter__(self): + def __enter__(self) -> None: for module_name, module in self._model.named_modules(): - if module_name != '': - full_name = type(module).__module__ + '.' + type(module).__name__ + if module_name: + full_name = f"{type(module).__module__}.{type(module).__name__}" record_name = f"{full_name}: {module_name}" pre_forward_handle = module.register_forward_pre_hook( partial(self._start_recording_forward, record_name=record_name) @@ -76,12 +84,13 @@ def __enter__(self): partial(self._stop_recording_forward, record_name=record_name) ) - self.handles[module_name] = [pre_forward_handle, post_forward_handle] + self._handles[module_name] = [pre_forward_handle, post_forward_handle] - def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): - for handles in self.handles.values(): + def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: + for handles in self._handles.values(): for h in handles: h.remove() + self._handles = {} class PyTorchProfiler(BaseProfiler): @@ -174,23 +183,23 @@ def __init__( record_functions = self.__deprecation_check(profiled_functions, record_functions) - self.profiler: Optional[_PROFILER] = None - self.function_events: Optional[EventList] = None - - self._record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) - self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" self._group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) - self._row_limit = row_limit self._emit_nvtx = emit_nvtx self._export_to_chrome = export_to_chrome self._path_to_export_trace = path_to_export_trace + self._row_limit = row_limit + self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" + self._record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) self._record_module_names = record_module_names - self._lightning_module = None # set by ProfilerConnector - self._register = None self._profiler_kwargs = profiler_kwargs - self._parent_profiler = None + + self.profiler: Optional[_PROFILER] = None + self.function_events: Optional['EventList'] = None + self._lightning_module: Optional['LightningModule'] = None # set by ProfilerConnector + self._register: Optional[RegisterRecordFunction] = None + self._parent_profiler: Optional[_PROFILER] = None self._recording_map: Dict[str, record_function] = {} - self._profiler_instantiated: bool = False + self._profiler_instantiated = False if self._export_to_chrome and self._path_to_export_trace is None: rank_zero_warn( @@ -203,8 +212,11 @@ def __init__( f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - def __deprecation_check(self, profiled_functions: Optional[List[str]], - record_functions: Optional[List[str]]) -> List[str]: + def __deprecation_check( + self, + profiled_functions: Optional[List[str]], + record_functions: Optional[List[str]], + ) -> List[str]: if record_functions is None: record_functions = [] @@ -213,15 +225,13 @@ def __deprecation_check(self, profiled_functions: Optional[List[str]], "`PyTorchProfiler.profiled_functions` has been renamed to" " `record_functions` in v1.3 and will be removed in v1.5", DeprecationWarning ) - if (len(record_functions) == 0 or len(profiled_functions) == 0): + if not record_functions: record_functions += profiled_functions else: raise MisconfigurationException( "You set `PytorchProfiler.profiled_functions` and `PyTorchProfiler.record_functions`." " Please use only the later." ) - if record_functions is None: - record_functions = [] return record_functions diff --git a/pytorch_lightning/trainer/predict_loop.py b/pytorch_lightning/trainer/predict_loop.py index fe0719aa14da9..97f8da1e41368 100644 --- a/pytorch_lightning/trainer/predict_loop.py +++ b/pytorch_lightning/trainer/predict_loop.py @@ -88,8 +88,7 @@ def predict(self, batch, batch_idx, dataloader_idx): return def on_predict_epoch_end(self): - if self.trainer.profiler is not None: - self.trainer.profiler.describe() + self.trainer.profiler.describe() self.trainer._progress_bar_callback.on_predict_end(self.trainer, self.trainer.lightning_module) From 7e27a8d75f5510dc8606bca563c1542b9e0fcf63 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 13:14:33 +0000 Subject: [PATCH 082/126] resolve some tests --- pytorch_lightning/profiler/pytorch.py | 76 ++++++++++++++++++++------- tests/test_profiler.py | 46 ++++++---------- 2 files changed, 73 insertions(+), 49 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index dd2b6f709af38..1fdc51a9726f2 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -104,6 +104,7 @@ def __init__(self, schedule: Callable) -> None: self._validation_step_reached_end = False # used to stop profiler when `ProfilerAction.RECORD_AND_SAVE` is reached. self._current_action = None + self._start_action_name = None @property def num_step(self) -> int: @@ -121,9 +122,11 @@ def num_step(self) -> int: def _step(self) -> None: if self._current_action == "training_step_and_backward": self._num_training_step_and_backward += 1 - elif self._current_action == "validation_step" and self._num_training_step_and_backward > 0: - # skip sanity check - self._num_validation_step += 1 + elif self._current_action == "validation_step": + if self._start_action_name == "on_train_start" and self._num_training_step_and_backward > 0: + self._num_validation_step += 1 + else: + self._num_validation_step += 1 elif self._current_action == "test_step": self._num_test_step += 1 elif self._current_action == "predict": @@ -169,7 +172,7 @@ class PyTorchProfiler(BaseProfiler): "self_cuda_memory_usage", "count", ) - START_RECORD_FUNCTIONS = ('on_train_start', 'on_validation_step', 'on_test_start', 'on_predict_start') + START_RECORD_FUNCTIONS = ('on_train_start', 'on_validation_start', 'on_test_start', 'on_predict_start') def __init__( self, @@ -265,8 +268,11 @@ def __init__( self._parent_profiler = None self._recording_map: Dict[str, record_function] = {} self._profiler_instantiated: bool = False + self._start_action_name: Optional[str] = None if _TORCH_GREATER_EQUAL_1_8: + has_schedule = "schedule" in profiler_kwargs + self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs schedule = profiler_kwargs.get("schedule", None) activities = profiler_kwargs.get("activities", None) if schedule is not None: @@ -279,15 +285,17 @@ def __init__( "Schedule should be a callable returning `torch.profiler.ProfilerAction`. " ) - self._profiler_kwargs["schedule"] = self._schedule = ScheduleWrapper(schedule or self._default_schedule()) + schedule = schedule if has_schedule else self._default_schedule() + self._profiler_kwargs["schedule"] = self._schedule = ScheduleWrapper(schedule) if schedule is not None else schedule self._profiler_kwargs["activities"] = activities or self._default_activities() self._export_to_flame_graph = profiler_kwargs.get("export_to_flame_graph", True) self._metric = profiler_kwargs.get("metric", "self_cpu_time_total") + self._profiler_kwargs["with_stack"] = profiler_kwargs.get("with_stack", True) or self._export_to_flame_graph if self._export_to_chrome and self._path_to_export_trace is None: rank_zero_warn( "The exported trace would be saved locally as `path_to_export_trace` is None." - " Note: Each functions will generate its own traced file." + " Note: Each functions will generate its own traced file.", UserWarning ) if self._sort_by_key not in self.AVAILABLE_SORT_KEYS: @@ -339,9 +347,17 @@ def setup( if self._path_to_export_trace is None: self._path_to_export_trace = log_dir + @property + def start_action_names(self): + return set(list(self.START_RECORD_FUNCTIONS) + list(self._record_functions)) + + @property + def step_action_names(self): + return set(list(self.STEP_FUNCTIONS) + list(self._record_functions)) + def start(self, action_name: str) -> None: if not self._profiler_instantiated and action_name in ( - list(self.START_RECORD_FUNCTIONS) + list(self._record_functions) + self.start_action_names ): # close profiler if it is already opened @@ -350,9 +366,14 @@ def start(self, action_name: str) -> None: except (AttributeError, RuntimeError): pass + self._start_action_name = action_name + self._create_profilers() - self.profiler.__enter__() + profiler = self.profiler.__enter__() + if profiler is not None: + self.profiler = profiler + if self._parent_profiler is not None: self._parent_profiler.__enter__() @@ -372,6 +393,7 @@ def start(self, action_name: str) -> None: if self._schedule is not None: self._schedule._current_action = action_name + self._schedule._start_action_name = self._start_action_name def stop(self, action_name: str) -> None: if action_name in self._recording_map: @@ -381,7 +403,7 @@ def stop(self, action_name: str) -> None: if not _TORCH_GREATER_EQUAL_1_8: return - if action_name in self.STEP_FUNCTIONS: + if action_name in self.step_action_names: if self._schedule is not None: self._schedule._current_action = action_name @@ -389,14 +411,22 @@ def on_trace_ready(profiler): local_rank = 0 if self.local_rank is None else self.local_rank filename = f"{action_name}_{local_rank}" - if self._export_to_chrome: - tensorboard_trace_handler(self._path_to_export_trace, filename)(profiler) - - if self._export_to_flame_graph: - path = os.path.join(self._path_to_export_trace, f"{filename}.stack") - profiler.export_stacks(path, metric=self._metric) - - self.profiler.on_trace_ready = on_trace_ready + dirpath = self._path_to_export_trace or self.dirpath or self._log_dir + + if dirpath is not None: + if self._export_to_chrome: + tensorboard_trace_handler(dirpath, filename)(profiler) + + if self._export_to_flame_graph: + path = os.path.join(dirpath, f"{filename}.stack") + profiler.export_stacks(path, metric=self._metric) + else: + rank_zero_warn( + f"The Profiler failed to export trace as ``path_to_export_trace`` and ``dirpath`` and ``log_dir`` are None", + UserWarning) + + if not self._has_on_trace_ready: + self.profiler.on_trace_ready = on_trace_ready self.profiler.step() def summary(self) -> str: @@ -405,7 +435,17 @@ def summary(self) -> str: self.profiler.__exit__(None, None, None) if _TORCH_GREATER_EQUAL_1_8: - self.function_events = self.profiler.events() + try: + self.function_events = self.profiler.events() + except AssertionError as e: + if self._schedule is not None: + rank_zero_warn( + f"The 1.8+ PyTorch Profiler uses a schedule to record trace. " + "It didn't perform enough steps on {self.step_action_names}" + "HINT: Perform enough step or do: PyTorchProfiler(schedule=None)", + UserWarning) + raise e + elif not self._emit_nvtx: self.function_events = self.profiler.function_events diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 6b1f879a98e72..e5ecd48572576 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -291,6 +291,7 @@ def test_pytorch_profiler_value_errors(pytorch_profiler): pytorch_profiler.teardown() +@pytest.mark.skipif(reason="Segmentation fault (core dumped)") @RunIf(min_torch="1.6.0") def test_advanced_profiler_cprofile_deepcopy(tmpdir): """Checks for pickle issue reported in #6522""" @@ -310,6 +311,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): pytorch_profiler = PyTorchProfiler(dirpath=None, filename="profiler") model = BoringModel() trainer = Trainer( + default_root_dir=tmpdir, max_epochs=1, limit_train_batches=5, limit_val_batches=5, @@ -336,11 +338,12 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): data = Path(path).read_text("utf-8") assert len(data) > 0 else: - files = os.listdir(tmpdir if pytorch_profiler == PyTorchProfiler else trainer.profiler.path_to_export_trace) + files = os.listdir(trainer.profiler.dirpath) files = sorted([file for file in files if file.endswith('.json')]) - assert 'training_step_and_backward_0' in files[0] - assert 'validation_step_0' in files[1] - assert len(files) == 2 + local_rank = trainer.local_rank + assert f'training_step_and_backward_{local_rank}' in files[local_rank] + assert f'validation_step_{local_rank}' in files[local_rank + 2] + assert len(files) == 4 def test_pytorch_profiler_trainer_test(tmpdir): @@ -416,7 +419,7 @@ def test_pytorch_profiler_trainer_validate(tmpdir, pytorch_profiler): trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, - limit_test_batches=2, + limit_val_batches=5, profiler=pytorch_profiler, ) trainer.validate(model) @@ -431,7 +434,7 @@ def test_pytorch_profiler_nested(tmpdir): """Ensure that the profiler handles nested context""" pytorch_profiler = PyTorchProfiler( - profiled_functions=["a", "b", "c"], use_cuda=False, dirpath=tmpdir, filename="profiler" + profiled_functions=["a", "b", "c"], use_cuda=False, dirpath=tmpdir, filename="profiler", schedule=None ) with pytorch_profiler.profile("a"): @@ -463,28 +466,6 @@ def test_pytorch_profiler_nested(tmpdir): assert events_name == expected, (events_name, torch.__version__, platform.system()) -@pytest.mark.skipif(not _TORCH_GREATER_EQUAL_1_8, reason="Need at least PyTorch 1.8") -@pytest.mark.parametrize('profiler', ('pytorch', PyTorchProfiler)) -def test_pytorch_profiler_trainer_new_api(tmpdir, profiler): - """Ensure that the profiler can be given to the training and default step are properly recorded. """ - - model = BoringModel() - trainer = Trainer( - default_root_dir=tmpdir, - max_epochs=1, - limit_train_batches=10, - limit_val_batches=10, - profiler=profiler if isinstance(profiler, str) else profiler(path_to_export_trace=tmpdir), - ) - trainer.fit(model) - - files = os.listdir(tmpdir if profiler == PyTorchProfiler else trainer.profiler.path_to_export_trace) - files = sorted([file for file in files if file.endswith('.json')]) - assert 'training_step_and_backward_0' in files[0] - assert 'validation_step_0' in files[1] - assert len(files) == 2 - - @RunIf(min_torch="1.5.0") def test_register_record_function(tmpdir): @@ -494,7 +475,9 @@ def test_register_record_function(tmpdir): export_to_chrome=False, record_functions=["a"], use_cuda=use_cuda, - output_filename=os.path.join(tmpdir, "profiler.txt") + output_filename=os.path.join(tmpdir, "profiler.txt"), + schedule=None, + #on_trace_ready=None, ) class TestModel(BoringModel): @@ -542,8 +525,9 @@ def on_fit_end(self, trainer, *args, **kwargs) -> None: assert profiler._output_file is None -@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="currently not supported for PyTorch 1.8") -def test_pytorch_profiler_deepcopy(pytorch_profiler): +def test_pytorch_profiler_deepcopy(tmpdir): + pytorch_profiler = PyTorchProfiler(dirpath=tmpdir, filename="profiler", schedule=None) pytorch_profiler.start("on_train_start") + torch.tensor(1) pytorch_profiler.describe() assert deepcopy(pytorch_profiler) From 87aa09f719d308cea5ba80cbf2bc7b58a522c42f Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 13:29:47 +0000 Subject: [PATCH 083/126] resolve test for 1.7.1 --- pytorch_lightning/profiler/pytorch.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 2187deeacf9c8..e941db8583680 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -112,8 +112,14 @@ def __init__(self, schedule: Callable) -> None: self._training_step_and_backward_reached_end = False self._validation_step_reached_end = False # used to stop profiler when `ProfilerAction.RECORD_AND_SAVE` is reached. - self._current_action = None - self._start_action_name = None + self._current_action: Optional[str] = None + self._start_action_name: Optional[str] = None + + def setup(self, start_action_name: str): + self._start_action_name = start_action_name + + def pre_step(self, current_action: str): + self._current_action = current_action @property def num_step(self) -> int: @@ -378,7 +384,8 @@ def start(self, action_name: str) -> None: except (AttributeError, RuntimeError): pass - self._start_action_name = action_name + if self._schedule is not None: + self._schedule.setup(action_name) self._create_profilers() @@ -404,8 +411,7 @@ def start(self, action_name: str) -> None: self._recording_map[action_name] = recording if self._schedule is not None: - self._schedule._current_action = action_name - self._schedule._start_action_name = self._start_action_name + self._schedule.pre_step(action_name) def stop(self, action_name: str) -> None: if action_name in self._recording_map: From ba067fdcfe75eaa5a3325328546d27777eef623c Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 14:31:45 +0100 Subject: [PATCH 084/126] Broken refactor --- pytorch_lightning/profiler/pytorch.py | 56 ++++++++++----------------- 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index bfcd08146aeab..dcf7e4696bd0e 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -176,8 +176,6 @@ def __init__( Raises: MisconfigurationException: If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``. - ValueError: - If you attempt to stop recording an action which was never started. """ super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) @@ -199,7 +197,6 @@ def __init__( self._register: Optional[RegisterRecordFunction] = None self._parent_profiler: Optional[_PROFILER] = None self._recording_map: Dict[str, record_function] = {} - self._profiler_instantiated = False if self._export_to_chrome and self._path_to_export_trace is None: rank_zero_warn( @@ -246,13 +243,12 @@ def setup( self._path_to_export_trace = log_dir def start(self, action_name: str) -> None: - if not self._profiler_instantiated and action_name in ( - list(self.START_RECORD_FUNCTIONS) + list(self._record_functions) - ): + if self.profiler is None and action_name in self._record_functions: - # close profiler if it is already opened + # close profiler if it is already opened. might happen if 2 profilers + # are created and the first one did not call `describe` try: - torch.autograd._disable_profiler() + torch.autograd._disable_profiler() # noqa except (AttributeError, RuntimeError): pass @@ -261,15 +257,11 @@ def start(self, action_name: str) -> None: self.profiler.__enter__() if self._parent_profiler is not None: self._parent_profiler.__enter__() - - self._profiler_instantiated = True - - if self._record_module_names and self._lightning_module is not None: - self._register = RegisterRecordFunction(self._lightning_module) + if self._register is not None: self._register.__enter__() if ( - self._profiler_instantiated and action_name in self._record_functions + self.profiler is not None and action_name in self._record_functions and action_name not in self._recording_map ): recording = record_function(action_name) @@ -282,24 +274,11 @@ def stop(self, action_name: str) -> None: del self._recording_map[action_name] def summary(self) -> str: - if not self._profiler_kwargs.get("enabled", True): + if not self._profiler_kwargs.get("enabled", True) or self._emit_nvtx: return "" - self.profiler.__exit__(None, None, None) - if not self._emit_nvtx: - self.function_events = self.profiler.function_events - self.profiler = None - self._profiler_instantiated = False - - if self._parent_profiler is not None: - self._parent_profiler.__exit__(None, None, None) - self._parent_profiler = None - - if self._register is not None: - self._register.__exit__(None, None, None) - - if self._emit_nvtx: - return "" + self.function_events = self.profiler.function_events + self._delete_profilers() if self._export_to_chrome: filename = f"{self.local_rank}_trace.json" @@ -311,8 +290,7 @@ def summary(self) -> str: data = self.function_events.key_averages(group_by_input_shapes=self._group_by_input_shapes) table = data.table(sort_by=self._sort_by_key, row_limit=self._row_limit) - recorded_stats = {} - recorded_stats["records"] = table + recorded_stats = {"records": table} return self._stats_to_str(recorded_stats) def _create_profilers(self) -> None: @@ -322,15 +300,18 @@ def _create_profilers(self) -> None: else: self._parent_profiler = None self.profiler = self._create_profiler(torch.autograd.profiler.profile) + if self._record_module_names and self._lightning_module is not None: + self._register = RegisterRecordFunction(self._lightning_module) def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: init_parameters = inspect.signature(profiler.__init__).parameters kwargs = {k: v for k, v in self._profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) - def teardown(self, stage: Optional[str] = None) -> None: + def _delete_profilers(self) -> None: if self.profiler is not None: self.profiler.__exit__(None, None, None) + self.profiler = None if self._parent_profiler is not None: self._parent_profiler.__exit__(None, None, None) @@ -338,8 +319,13 @@ def teardown(self, stage: Optional[str] = None) -> None: if self._register is not None: self._register.__exit__(None, None, None) + self._register = None + + def teardown(self, stage: Optional[str] = None) -> None: + self._delete_profilers() - for record in self._recording_map.values(): - record.__exit__(None, None, None) + for k in self._recording_map: + self.stop(k) + self._recording_map = {} super().teardown() From f916013a60d7f7b1b238575b6d4dc7bc10acea0a Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 14:36:28 +0100 Subject: [PATCH 085/126] Missed stage --- pytorch_lightning/profiler/pytorch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index dcf7e4696bd0e..9a34ef41cab5e 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -328,4 +328,4 @@ def teardown(self, stage: Optional[str] = None) -> None: self.stop(k) self._recording_map = {} - super().teardown() + super().teardown(stage=stage) From 9a1b1b649d120f91bf21a2070b2cb930bb774712 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 14:42:10 +0100 Subject: [PATCH 086/126] Minor changes --- tests/test_profiler.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 99f1d74905a5c..60b4c0ece8a66 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -339,7 +339,7 @@ def test_pytorch_profiler_trainer_test(tmpdir, pytorch_profiler): ) trainer.test(model) - assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 + assert sum(e.name == 'test_step' for e in pytorch_profiler.function_events) path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") @@ -357,7 +357,7 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): ) trainer.predict(model) - assert len([e for e in pytorch_profiler.function_events if 'predict' == e.name]) > 0 + assert sum(e.name == 'predict_step' for e in pytorch_profiler.function_events) path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") @@ -374,7 +374,7 @@ def test_pytorch_profiler_trainer_validate(tmpdir, pytorch_profiler): ) trainer.validate(model) - assert len([e for e in pytorch_profiler.function_events if 'validation_step' == e.name]) > 0 + assert sum(e.name == 'validation_step' for e in pytorch_profiler.function_events) path = pytorch_profiler.dirpath / f"validate-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") From 04abd0a716f6c34694d7fc71ee1a295a90bf8b41 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 13:52:25 +0000 Subject: [PATCH 087/126] resolve tests --- pytorch_lightning/profiler/pytorch.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index dcf7e4696bd0e..1ea030cd2998e 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -187,6 +187,7 @@ def __init__( self._path_to_export_trace = path_to_export_trace self._row_limit = row_limit self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" + self._record_functions_start = set(record_functions + list(self.START_RECORD_FUNCTIONS)) self._record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) self._record_module_names = record_module_names self._profiler_kwargs = profiler_kwargs @@ -243,7 +244,7 @@ def setup( self._path_to_export_trace = log_dir def start(self, action_name: str) -> None: - if self.profiler is None and action_name in self._record_functions: + if self.profiler is None and action_name in self._record_functions_start: # close profiler if it is already opened. might happen if 2 profilers # are created and the first one did not call `describe` @@ -277,7 +278,6 @@ def summary(self) -> str: if not self._profiler_kwargs.get("enabled", True) or self._emit_nvtx: return "" - self.function_events = self.profiler.function_events self._delete_profilers() if self._export_to_chrome: @@ -308,9 +308,13 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: kwargs = {k: v for k, v in self._profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) + def _cache_functions_events(self): + self.function_events = self.profiler.function_events + def _delete_profilers(self) -> None: if self.profiler is not None: self.profiler.__exit__(None, None, None) + self._cache_functions_events() self.profiler = None if self._parent_profiler is not None: From 0230330d2ed551ccfbe7d133347c21fd7b332926 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 14:59:39 +0100 Subject: [PATCH 088/126] Update CHANGELOG --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32cf9122efe34..2dc0ba3e227e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Added `AbstractProfiler` interface ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) +- Added support for including module names for forward in the autograd trace of `PyTorchProfiler` ([#6349](https://github.com/PyTorchLightning/pytorch-lightning/pull/6349)) + + - Added `outputs` parameter to callback's `on_validation_epoch_end` & `on_test_epoch_end` hooks ([#6120](https://github.com/PyTorchLightning/pytorch-lightning/pull/6120)) @@ -74,6 +77,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Changed profilers to save separate report files per state and rank ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) +- Changed `PyTorchProfiler` to use `torch.autograd.profiler.record_function` to record functions ([#6349](https://github.com/PyTorchLightning/pytorch-lightning/pull/6349)) + + ### Deprecated - `period` has been deprecated in favor of `every_n_val_epochs` in the `ModelCheckpoint` callback ([#6146](https://github.com/PyTorchLightning/pytorch-lightning/pull/6146)) @@ -85,6 +91,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Deprecated `Profiler(output_filename)` in favor of `dirpath` and `filename` ([#6621](https://github.com/PyTorchLightning/pytorch-lightning/pull/6621)) +- Deprecated `PytorchProfiler(profiled_functions)` in favor of `record_functions` ([#6349](https://github.com/PyTorchLightning/pytorch-lightning/pull/6349)) + + - Deprecated metrics in favor of `torchmetrics` ([#6505](https://github.com/PyTorchLightning/pytorch-lightning/pull/6505), [#6530](https://github.com/PyTorchLightning/pytorch-lightning/pull/6530), From cba643b514e076377d918c67e1a1dbb3beeb4090 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 14:04:26 +0000 Subject: [PATCH 089/126] resolve bug --- pytorch_lightning/profiler/profilers.py | 1 + pytorch_lightning/profiler/pytorch.py | 8 ++++++-- tests/test_profiler.py | 5 +++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 46d72583fb466..53577b8e46fa5 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -99,6 +99,7 @@ def profile(self, action_name: str) -> None: stop once you exit the code block. """ try: + print(action_name) self.start(action_name) yield action_name finally: diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 3da7eb5763b10..219238593c9b2 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -109,7 +109,7 @@ class PyTorchProfiler(BaseProfiler): "self_cuda_memory_usage", "count", ) - START_RECORD_FUNCTIONS = ('on_train_start', 'on_validation_step', 'on_test_start', 'on_predict_start') + START_RECORD_FUNCTIONS = ('on_train_start', 'on_validation_start', 'on_test_start', 'on_predict_start') def __init__( self, @@ -285,7 +285,11 @@ def summary(self) -> str: path_to_trace = ( filename if self._path_to_export_trace is None else os.path.join(self._path_to_export_trace, filename) ) - self.function_events.export_chrome_trace(path_to_trace) + if self.function_events is not None and len(self.function_events) > 0: + self.function_events.export_chrome_trace(path_to_trace) + + if self.function_events is None or len(self.function_events) > 0: + return "" data = self.function_events.key_averages(group_by_input_shapes=self._group_by_input_shapes) table = data.table(sort_by=self._sort_by_key, row_limit=self._row_limit) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 60b4c0ece8a66..3afa641aeca79 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -268,7 +268,7 @@ def pytorch_profiler(tmpdir): def test_pytorch_profiler_describe(pytorch_profiler): """Ensure the profiler won't fail when reporting the summary.""" - with pytorch_profiler.profile("test_step"): + with pytorch_profiler.profile("on_test_start"): pass # log to stdout and print to file @@ -366,10 +366,11 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): def test_pytorch_profiler_trainer_validate(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the trainer and validate function are properly recorded. """ model = BoringModel() + model.val_dataloader = model.train_dataloader trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, - limit_test_batches=2, + limit_val_batches=2, profiler=pytorch_profiler, ) trainer.validate(model) From af209f55e4ad2577b4c3bd960cd35d263035bdd8 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 14:05:34 +0000 Subject: [PATCH 090/126] remove print --- pytorch_lightning/profiler/profilers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 53577b8e46fa5..46d72583fb466 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -99,7 +99,6 @@ def profile(self, action_name: str) -> None: stop once you exit the code block. """ try: - print(action_name) self.start(action_name) yield action_name finally: From bb813bbd8398fedf172b5fe77fb5efbc344f7b10 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 15:05:48 +0100 Subject: [PATCH 091/126] Typo --- tests/test_profiler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 3afa641aeca79..1594f080a747f 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -357,7 +357,7 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): ) trainer.predict(model) - assert sum(e.name == 'predict_step' for e in pytorch_profiler.function_events) + assert sum(e.name == 'predict' for e in pytorch_profiler.function_events) path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") From 624a85f6045463eac42d53d4138586d81a7f4839 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 15:11:32 +0100 Subject: [PATCH 092/126] Cleanup --- pytorch_lightning/profiler/pytorch.py | 9 ++++----- tests/test_profiler.py | 3 +-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 219238593c9b2..39b740c538829 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -280,16 +280,15 @@ def summary(self) -> str: self._delete_profilers() + if not self.function_events: + return "" + if self._export_to_chrome: filename = f"{self.local_rank}_trace.json" path_to_trace = ( filename if self._path_to_export_trace is None else os.path.join(self._path_to_export_trace, filename) ) - if self.function_events is not None and len(self.function_events) > 0: - self.function_events.export_chrome_trace(path_to_trace) - - if self.function_events is None or len(self.function_events) > 0: - return "" + self.function_events.export_chrome_trace(path_to_trace) data = self.function_events.key_averages(group_by_input_shapes=self._group_by_input_shapes) table = data.table(sort_by=self._sort_by_key, row_limit=self._row_limit) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 1594f080a747f..512797f2c646a 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -269,7 +269,7 @@ def pytorch_profiler(tmpdir): def test_pytorch_profiler_describe(pytorch_profiler): """Ensure the profiler won't fail when reporting the summary.""" with pytorch_profiler.profile("on_test_start"): - pass + torch.tensor(0) # log to stdout and print to file pytorch_profiler.describe() @@ -366,7 +366,6 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): def test_pytorch_profiler_trainer_validate(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the trainer and validate function are properly recorded. """ model = BoringModel() - model.val_dataloader = model.train_dataloader trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, From 1732ece5e095f7e7cc6cf3168f91f1dba0823512 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 14:24:54 +0000 Subject: [PATCH 093/126] resolve ddp test --- tests/test_profiler.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 512797f2c646a..ef12f70ceafba 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -316,12 +316,10 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): for name in expected: assert sum(e.name == name for e in pytorch_profiler.function_events) - assert len(pytorch_profiler.summary()) > 0 - assert set(pytorch_profiler.profiled_actions) == {'training_step_and_backward', 'validation_step'} + trainer.accelerator.barrier() files = set(os.listdir(pytorch_profiler.dirpath)) - rank = int(os.getenv("LOCAL_RANK", 0)) - expected = f"fit-profiler-{rank}.txt" + expected = f"fit-profiler-{trainer.local_rank}.txt" assert expected in files path = os.path.join(pytorch_profiler.dirpath, expected) From f0c167508da50f918f4447010d1ca274b2c98d65 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 14:27:32 +0000 Subject: [PATCH 094/126] remove barrier --- tests/test_profiler.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index ef12f70ceafba..8cf6d96e7a328 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -316,8 +316,6 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): for name in expected: assert sum(e.name == name for e in pytorch_profiler.function_events) - trainer.accelerator.barrier() - files = set(os.listdir(pytorch_profiler.dirpath)) expected = f"fit-profiler-{trainer.local_rank}.txt" assert expected in files From fbe50b1b581026048f999622eb81d03e6e8b77fb Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 15:11:32 +0000 Subject: [PATCH 095/126] update profiler --- tests/test_profiler.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 7b7098f1820ec..5c84c3bc92ce8 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -301,8 +301,9 @@ def test_advanced_profiler_cprofile_deepcopy(tmpdir): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): +def test_pytorch_profiler_trainer_ddp(tmpdir): """Ensure that the profiler can be given to the training and default step are properly recorded. """ + pytorch_profiler = PyTorchProfiler(dirpath=None, filename="profiler") model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -320,11 +321,6 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): for name in expected: assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0 - assert len(pytorch_profiler.summary()) > 0 - assert set(pytorch_profiler.profiled_actions) == {'training_step_and_backward', 'validation_step'} - - trainer.accelerator.barrier() - files = set(os.listdir(pytorch_profiler.dirpath)) rank = int(os.getenv("LOCAL_RANK", 0)) expected = f"fit-profiler-{rank}.txt" @@ -333,10 +329,11 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): path = os.path.join(pytorch_profiler.dirpath, expected) assert Path(path).read_text() else: - files = os.listdir(trainer.profiler.dirpath) + files = os.listdir(pytorch_profiler._log_dir) files = sorted([file for file in files if file.endswith('.json')]) local_rank = trainer.local_rank - assert f'training_step_and_backward_{local_rank}' in files[local_rank] + print(files) + assert f'training_step_{local_rank}' in files[local_rank] assert f'validation_step_{local_rank}' in files[local_rank + 2] assert len(files) == 4 From 374f0da4bbd09b2c4bfba5e5b8ef88ab67c19544 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 15:17:18 +0000 Subject: [PATCH 096/126] update --- pytorch_lightning/profiler/pytorch.py | 2 +- tests/test_profiler.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 39b740c538829..3a1ead8ee771b 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -96,7 +96,7 @@ def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: class PyTorchProfiler(BaseProfiler): RECORD_FUNCTIONS = ( - "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict" + "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict_step" ) AVAILABLE_SORT_KEYS = ( "cpu_time", diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 8cf6d96e7a328..5114d02cfd816 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -353,7 +353,7 @@ def test_pytorch_profiler_trainer_predict(tmpdir, pytorch_profiler): ) trainer.predict(model) - assert sum(e.name == 'predict' for e in pytorch_profiler.function_events) + assert sum(e.name == 'predict_step' for e in pytorch_profiler.function_events) path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") From 6e948ca2d13e8904a5e11de75a9ce5c9d9170a05 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 16:47:47 +0100 Subject: [PATCH 097/126] Smaller model --- tests/test_profiler.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 5114d02cfd816..5d144aef36573 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -437,22 +437,22 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): def test_register_record_function(tmpdir): use_cuda = torch.cuda.is_available() - pytorch_profiler = PyTorchProfiler( export_to_chrome=False, record_functions=["a"], use_cuda=use_cuda, - output_filename=os.path.join(tmpdir, "profiler.txt") + dirpath=tmpdir, + filename="profiler", ) class TestModel(BoringModel): def __init__(self): super().__init__() - self.layer = torch.nn.Sequential(torch.nn.Linear(32, 32), torch.nn.ReLU(), torch.nn.Linear(32, 2)) + self.layer = torch.nn.Sequential(torch.nn.Linear(8, 8), torch.nn.ReLU(), torch.nn.Linear(8, 2)) model = TestModel() - input = torch.rand((1, 32)) + input = torch.rand((1, 8)) if use_cuda: model = model.cuda() From ad55628d8479bf6d5782a3081025224bf99a9ce7 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 16:05:22 +0000 Subject: [PATCH 098/126] update --- pytorch_lightning/profiler/pytorch.py | 52 +++++++------------------ tests/test_profiler.py | 55 ++++++++++++++------------- 2 files changed, 43 insertions(+), 64 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index e941db8583680..de9d588199a46 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -173,7 +173,7 @@ def __call__(self, num_step: int) -> 'ProfilerAction': class PyTorchProfiler(BaseProfiler): RECORD_FUNCTIONS = ( - "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict" + "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict_step" ) STEP_FUNCTIONS = ("training_step_and_backward", "validation_step", "test_step", "predict") AVAILABLE_SORT_KEYS = ( @@ -196,7 +196,6 @@ def __init__( group_by_input_shapes: bool = False, emit_nvtx: bool = False, export_to_chrome: bool = True, - path_to_export_trace: Optional[str] = None, row_limit: int = 20, sort_by_key: Optional[str] = None, record_functions: List[str] = None, @@ -232,9 +231,6 @@ def __init__( export_to_chrome: Whether to export the sequence of profiled operators for Chrome. It will generate a ``.json`` file which can be read by Chrome. - path_to_export_trace: Directory path to export ``.json`` traces when using ``export_to_chrome=True``. - By default, it will be save where the file being is being run. - row_limit: Limit the number of rows in a table, ``-1`` is a special value that removes the limit completely. @@ -269,20 +265,15 @@ def __init__( f"Found sort_by_key: {sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - self._record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) - self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" self._group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) self._emit_nvtx = emit_nvtx self._export_to_chrome = export_to_chrome - self._path_to_export_trace = path_to_export_trace self._row_limit = row_limit self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" self._record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) self._record_module_names = record_module_names self._profiler_kwargs = profiler_kwargs - self.profiler: Optional[_PROFILER] = None - self.function_events: Optional['EventList'] = None self._lightning_module: Optional['LightningModule'] = None # set by ProfilerConnector self._register: Optional[RegisterRecordFunction] = None self._parent_profiler: Optional[_PROFILER] = None @@ -314,12 +305,6 @@ def __init__( self._metric = profiler_kwargs.get("metric", "self_cpu_time_total") self._profiler_kwargs["with_stack"] = profiler_kwargs.get("with_stack", True) or self._export_to_flame_graph - if self._export_to_chrome and self._path_to_export_trace is None: - rank_zero_warn( - "The exported trace would be saved locally as `path_to_export_trace` is None." - " Note: Each functions will generate its own traced file.", UserWarning - ) - if self._sort_by_key not in self.AVAILABLE_SORT_KEYS: raise MisconfigurationException( f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " @@ -357,16 +342,6 @@ def __deprecation_check(self, profiled_functions: Optional[List[str]], return record_functions - def setup( - self, stage: Optional[str] = None, local_rank: Optional[int] = None, log_dir: Optional[str] = None - ) -> None: - super().setup(stage=stage, local_rank=local_rank, log_dir=log_dir) - - # if the user didn't provide `path_to_export_trace`, - # set it as TensorBoardLogger log_dir if exists - if self._path_to_export_trace is None: - self._path_to_export_trace = log_dir - @property def start_action_names(self): return set(list(self.START_RECORD_FUNCTIONS) + list(self._record_functions)) @@ -396,14 +371,12 @@ def start(self, action_name: str) -> None: if self._parent_profiler is not None: self._parent_profiler.__enter__() - self._profiler_instantiated = True - if self._record_module_names and self._lightning_module is not None: self._register = RegisterRecordFunction(self._lightning_module) self._register.__enter__() if ( - self._profiler_instantiated and action_name in self._record_functions + self.profiler is not None and action_name in self._record_functions and action_name not in self._recording_map ): recording = record_function(action_name) @@ -429,19 +402,17 @@ def on_trace_ready(profiler): local_rank = 0 if self.local_rank is None else self.local_rank filename = f"{action_name}_{local_rank}" - dirpath = self._path_to_export_trace or self.dirpath or self._log_dir - - if dirpath is not None: + if self.dirpath is not None: if self._export_to_chrome: - tensorboard_trace_handler(dirpath, filename)(profiler) + tensorboard_trace_handler(self.dirpath, filename)(profiler) if self._export_to_flame_graph: - path = os.path.join(dirpath, f"{filename}.stack") + path = os.path.join(self.dirpath, f"{filename}.stack") profiler.export_stacks(path, metric=self._metric) else: rank_zero_warn( - "The Profiler failed to export trace as ``path_to_export_trace`` " - "and ``dirpath`` and ``log_dir`` are None", UserWarning + "The Profiler failed to export trace as " + "``dirpath``is None", UserWarning ) if not self._has_on_trace_ready: @@ -453,9 +424,14 @@ def summary(self) -> str: return "" self.profiler.__exit__(None, None, None) + if _TORCH_GREATER_EQUAL_1_8: try: - self.function_events = self.profiler.events() + function_events = self.profiler.events() + if self.function_events is not None: + self.function_events += function_events + else: + self.function_events = function_events except AssertionError as e: if self._schedule is not None: rank_zero_warn( @@ -484,7 +460,7 @@ def summary(self) -> str: if self._export_to_chrome and not _TORCH_GREATER_EQUAL_1_8: filename = f"{self.local_rank}_trace.json" path_to_trace = ( - filename if self._path_to_export_trace is None else os.path.join(self._path_to_export_trace, filename) + filename if self.dirpath is None else os.path.join(self.dirpath, filename) ) self.function_events.export_chrome_trace(path_to_trace) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 5c84c3bc92ce8..0497e03fde1bf 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -301,9 +301,8 @@ def test_advanced_profiler_cprofile_deepcopy(tmpdir): @RunIf(min_gpus=2, special=True) -def test_pytorch_profiler_trainer_ddp(tmpdir): +def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): """Ensure that the profiler can be given to the training and default step are properly recorded. """ - pytorch_profiler = PyTorchProfiler(dirpath=None, filename="profiler") model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -315,27 +314,29 @@ def test_pytorch_profiler_trainer_ddp(tmpdir): gpus=2, ) trainer.fit(model) - - if not _TORCH_GREATER_EQUAL_1_8: - expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') - for name in expected: - assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0 - - files = set(os.listdir(pytorch_profiler.dirpath)) - rank = int(os.getenv("LOCAL_RANK", 0)) - expected = f"fit-profiler-{rank}.txt" - assert expected in files - - path = os.path.join(pytorch_profiler.dirpath, expected) - assert Path(path).read_text() + + if _TORCH_GREATER_EQUAL_1_8: + expected = ('validation_step',) else: - files = os.listdir(pytorch_profiler._log_dir) + expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') + for name in expected: + assert len([e for e in pytorch_profiler.function_events if name == e.name]) > 0, name + + files = set(os.listdir(pytorch_profiler.dirpath)) + rank = int(os.getenv("LOCAL_RANK", 0)) + expected = f"fit-profiler-{rank}.txt" + assert expected in files + + path = os.path.join(pytorch_profiler.dirpath, expected) + assert Path(path).read_text() + + if _TORCH_GREATER_EQUAL_1_8: + files = os.listdir(pytorch_profiler.dirpath) files = sorted([file for file in files if file.endswith('.json')]) local_rank = trainer.local_rank - print(files) - assert f'training_step_{local_rank}' in files[local_rank] - assert f'validation_step_{local_rank}' in files[local_rank + 2] - assert len(files) == 4 + assert any(f'training_step_{local_rank}' in f for f in files) + assert any(f'validation_step_{local_rank}' in f for f in files) + assert len(files) == 2 def test_pytorch_profiler_trainer_test(tmpdir): @@ -352,12 +353,14 @@ def test_pytorch_profiler_trainer_test(tmpdir): ) trainer.test(model) - if not _TORCH_GREATER_EQUAL_1_8: - assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 - path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" - assert path.read_text("utf-8") - else: + import pdb; pdb.set_trace() + assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 + path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" + assert path.read_text("utf-8") + + if _TORCH_GREATER_EQUAL_1_8: files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) + assert any(f'validation_step_{trainer.local_rank}' in f for f in files) assert 'test_step_0' in files[0] @@ -377,7 +380,7 @@ def test_pytorch_profiler_trainer_predict(tmpdir): trainer.predict(model) if not _TORCH_GREATER_EQUAL_1_8: - assert len([e for e in pytorch_profiler.function_events if 'predict' == e.name]) > 0 + assert len([e for e in pytorch_profiler.function_events if 'predict_step' == e.name]) > 0 path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") else: From 2b0f92d36d4b7da8c92f156a88bf74624d9d8c72 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 16:32:23 +0000 Subject: [PATCH 099/126] resolve tests --- pytorch_lightning/profiler/pytorch.py | 10 ++++++++-- tests/test_profiler.py | 9 ++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index f42471d0e0231..6b2ff1dbbf45b 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -441,7 +441,10 @@ def _create_profilers(self) -> None: self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) else: self._parent_profiler = None - self.profiler = self._create_profiler(torch.autograd.profiler.profile) + if _TORCH_GREATER_EQUAL_1_8: + self.profiler = self._create_profiler(torch.profiler.profile) + else: + self.profiler = self._create_profiler(torch.autograd.profiler.profile) if self._record_module_names and self._lightning_module is not None: self._register = RegisterRecordFunction(self._lightning_module) @@ -451,7 +454,10 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: return profiler(**kwargs) def _cache_functions_events(self): - self.function_events = self.profiler.function_events + if _TORCH_GREATER_EQUAL_1_8: + self.function_events = self.profiler.events() + else: + self.function_events = self.profiler.function_events def _delete_profilers(self) -> None: if self.profiler is not None: diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 5aaa90ac8084a..86ca7dadf535b 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -340,7 +340,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): def test_pytorch_profiler_trainer_test(tmpdir): """Ensure that the profiler can be given to the trainer and test step are properly recorded. """ pytorch_profiler = PyTorchProfiler( - output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir + output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir, schedule=None ) model = BoringModel() trainer = Trainer( @@ -357,21 +357,20 @@ def test_pytorch_profiler_trainer_test(tmpdir): if _TORCH_GREATER_EQUAL_1_8: files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) - assert any(f'validation_step_{trainer.local_rank}' in f for f in files) - assert 'test_step_0' in files[0] + assert any(f'test_step_{trainer.local_rank}' in f for f in files) def test_pytorch_profiler_trainer_predict(tmpdir): """Ensure that the profiler can be given to the trainer and predict function are properly recorded. """ pytorch_profiler = PyTorchProfiler( - output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir + output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir, schedule=None ) model = BoringModel() model.predict_dataloader = model.train_dataloader trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, - limit_test_batches=2, + limit_predict_batches=2, profiler=pytorch_profiler, ) trainer.predict(model) From e46cf1caa09eb43a17997349764b8a8259654a47 Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 17:14:01 +0000 Subject: [PATCH 100/126] update --- pytorch_lightning/profiler/pytorch.py | 4 +++- tests/test_profiler.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 6b2ff1dbbf45b..9fcf840e2f08e 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -390,7 +390,7 @@ def stop(self, action_name: str) -> None: self._recording_map[action_name].__exit__(None, None, None) del self._recording_map[action_name] - if not _TORCH_GREATER_EQUAL_1_8: + if not _TORCH_GREATER_EQUAL_1_8 or self._emit_nvtx: return if action_name in self.step_action_names: @@ -454,6 +454,8 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: return profiler(**kwargs) def _cache_functions_events(self): + if self._emit_nvtx: + return if _TORCH_GREATER_EQUAL_1_8: self.function_events = self.profiler.events() else: diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 86ca7dadf535b..33843ee2518cb 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -503,3 +503,19 @@ def test_pytorch_profiler_deepcopy(tmpdir): torch.tensor(1) pytorch_profiler.describe() assert deepcopy(pytorch_profiler) + + +@RunIf(min_gpus=1, special=True) +def test_pytorch_profiler_nested_emit_nvtx(tmpdir): + """ + This test check emit_nvtx is correctly supported + """ + profiler = PyTorchProfiler(use_cuda=True, emit_nvtx=True) + + model = BoringModel() + trainer = Trainer( + fast_dev_run=True, + profiler=profiler, + gpus=1, + ) + trainer.fit(model) From 5b51259c7b5962eb34dfc41371db1bb6e869d51a Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 18:02:02 +0100 Subject: [PATCH 101/126] Minor changes. CHANGELOG --- CHANGELOG.md | 3 +++ pytorch_lightning/profiler/pytorch.py | 2 +- tests/test_profiler.py | 34 ++++++++++++--------------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1106189e0c17..1b3359ace54f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Added support for including module names for forward in the autograd trace of `PyTorchProfiler` ([#6349](https://github.com/PyTorchLightning/pytorch-lightning/pull/6349)) +- Added support for the PyTorch 1.8.1 autograd profiler ([#6618](https://github.com/PyTorchLightning/pytorch-lightning/pull/6618)) + + - Added `outputs` parameter to callback's `on_validation_epoch_end` & `on_test_epoch_end` hooks ([#6120](https://github.com/PyTorchLightning/pytorch-lightning/pull/6120)) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 27fea9d6d719d..b64d93341a40a 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -415,7 +415,7 @@ def on_trace_ready(profiler): path = os.path.join(self.dirpath, f"{filename}.stack") profiler.export_stacks(path, metric=self._metric) else: - rank_zero_warn("The Profiler failed to export trace as " "``dirpath``is None", UserWarning) + rank_zero_warn("The PyTorchProfiler failed to export trace as `dirpath` is None") if not self._has_on_trace_ready: self.profiler.on_trace_ready = on_trace_ready diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 7b8b9de57cae2..0478dc3c3f327 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -17,7 +17,6 @@ import time from copy import deepcopy from distutils.version import LooseVersion -from pathlib import Path import numpy as np import pytest @@ -285,7 +284,8 @@ def test_pytorch_profiler_raises(pytorch_profiler): PyTorchProfiler(profiled_functions=["a"], record_functions=["b"]) -@pytest.mark.skipif(reason="Segmentation fault (core dumped)") +# TODO: address this +@pytest.mark.skip(reason="Segmentation fault (core dumped)") @RunIf(min_torch="1.6.0") def test_advanced_profiler_cprofile_deepcopy(tmpdir): """Checks for pickle issue reported in #6522""" @@ -314,10 +314,9 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): ) trainer.fit(model) - if _TORCH_GREATER_EQUAL_1_8: - expected = ('validation_step', ) - else: - expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') + expected = ['validation_step'] + if not _TORCH_GREATER_EQUAL_1_8: + expected += ['training_step_and_backward', 'training_step', 'backward'] for name in expected: assert sum(e.name == name for e in pytorch_profiler.function_events), name @@ -325,23 +324,21 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): expected = f"fit-profiler-{trainer.local_rank}.txt" assert expected in files - path = os.path.join(pytorch_profiler.dirpath, expected) - assert Path(path).read_text() + path = pytorch_profiler.dirpath / expected + assert path.read_text("utf-8") if _TORCH_GREATER_EQUAL_1_8: files = os.listdir(pytorch_profiler.dirpath) - files = sorted([file for file in files if file.endswith('.json')]) + files = [file for file in files if file.endswith('.json')] + assert len(files) == 2, files local_rank = trainer.local_rank assert any(f'training_step_{local_rank}' in f for f in files) assert any(f'validation_step_{local_rank}' in f for f in files) - assert len(files) == 2 def test_pytorch_profiler_trainer_test(tmpdir): """Ensure that the profiler can be given to the trainer and test step are properly recorded. """ - pytorch_profiler = PyTorchProfiler( - output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir, schedule=None - ) + pytorch_profiler = PyTorchProfiler(dirpath=tmpdir, filename="profile", schedule=None) model = BoringModel() trainer = Trainer( default_root_dir=tmpdir, @@ -351,20 +348,18 @@ def test_pytorch_profiler_trainer_test(tmpdir): ) trainer.test(model) - assert len([e for e in pytorch_profiler.function_events if 'test_step' == e.name]) > 0 + assert sum('test_step' == e.name for e in pytorch_profiler.function_events) path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") if _TORCH_GREATER_EQUAL_1_8: - files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) + files = [file for file in os.listdir(tmpdir) if file.endswith('.json')] assert any(f'test_step_{trainer.local_rank}' in f for f in files) def test_pytorch_profiler_trainer_predict(tmpdir): """Ensure that the profiler can be given to the trainer and predict function are properly recorded. """ - pytorch_profiler = PyTorchProfiler( - output_filename=os.path.join(tmpdir, "profiler.txt"), local_rank=0, path_to_export_trace=tmpdir, schedule=None - ) + pytorch_profiler = PyTorchProfiler(dirpath=tmpdir, filename="profile", schedule=None) model = BoringModel() model.predict_dataloader = model.train_dataloader trainer = Trainer( @@ -447,7 +442,8 @@ def test_register_record_function(tmpdir): export_to_chrome=False, record_functions=["a"], use_cuda=use_cuda, - output_filename=os.path.join(tmpdir, "profiler.txt"), + dirpath=tmpdir, + filename="profiler", schedule=None, on_trace_ready=None, ) From 5aa19ec775a28aa01ba9f0aabd75cb2b1a290328 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 18:20:56 +0100 Subject: [PATCH 102/126] Minimize diff --- tests/test_profiler.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 0478dc3c3f327..bbe5f26baedaf 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -348,7 +348,8 @@ def test_pytorch_profiler_trainer_test(tmpdir): ) trainer.test(model) - assert sum('test_step' == e.name for e in pytorch_profiler.function_events) + assert sum(e.name == 'test_step' for e in pytorch_profiler.function_events) + path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") @@ -434,6 +435,22 @@ def test_pytorch_profiler_nested(tmpdir): assert events_name == expected, (events_name, torch.__version__, platform.system()) +@RunIf(min_gpus=1, special=True) +def test_pytorch_profiler_nested_emit_nvtx(tmpdir): + """ + This test check emit_nvtx is correctly supported + """ + profiler = PyTorchProfiler(use_cuda=True, emit_nvtx=True) + + model = BoringModel() + trainer = Trainer( + fast_dev_run=True, + profiler=profiler, + gpus=1, + ) + trainer.fit(model) + + @RunIf(min_torch="1.5.0") def test_register_record_function(tmpdir): @@ -536,19 +553,3 @@ def test_pytorch_profiler_deepcopy(tmpdir): torch.tensor(1) pytorch_profiler.describe() assert deepcopy(pytorch_profiler) - - -@RunIf(min_gpus=1, special=True) -def test_pytorch_profiler_nested_emit_nvtx(tmpdir): - """ - This test check emit_nvtx is correctly supported - """ - profiler = PyTorchProfiler(use_cuda=True, emit_nvtx=True) - - model = BoringModel() - trainer = Trainer( - fast_dev_run=True, - profiler=profiler, - gpus=1, - ) - trainer.fit(model) From efdb20b545b50635c43dd0e8c387122ec329444e Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 17:25:38 +0000 Subject: [PATCH 103/126] update to 1.8.1 --- pytorch_lightning/profiler/pytorch.py | 18 +++++++++--------- pytorch_lightning/utilities/imports.py | 1 + tests/test_profiler.py | 10 +++++----- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 27fea9d6d719d..65cd99bc10c15 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -26,7 +26,7 @@ from pytorch_lightning.profiler.profilers import BaseProfiler from pytorch_lightning.utilities.distributed import rank_zero_warn from pytorch_lightning.utilities.exceptions import MisconfigurationException -from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8 +from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8_1 if TYPE_CHECKING: from torch.autograd.profiler import EventList @@ -100,7 +100,7 @@ def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: self._handles = {} -if _TORCH_GREATER_EQUAL_1_8: +if _TORCH_GREATER_EQUAL_1_8_1: from torch.profiler import ProfilerAction, ProfilerActivity, tensorboard_trace_handler class ScheduleWrapper: @@ -287,7 +287,7 @@ def __init__( self._start_action_name: Optional[str] = None self._schedule: Optional[ScheduleWrapper] = None - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: has_schedule = "schedule" in profiler_kwargs self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs schedule = profiler_kwargs.get("schedule", None) @@ -317,11 +317,11 @@ def __init__( @staticmethod def _default_schedule() -> Optional[Callable]: - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: return torch.profiler.schedule(wait=1, warmup=1, active=2) def _default_activities(self) -> List: - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: activities = [ProfilerActivity.CPU] * self._profiler_kwargs.get("use_cpu", True) activities += [ProfilerActivity.CUDA] * self._profiler_kwargs.get("use_cuda", torch.cuda.is_available()) return activities @@ -396,7 +396,7 @@ def stop(self, action_name: str) -> None: self._recording_map[action_name].__exit__(None, None, None) del self._recording_map[action_name] - if not _TORCH_GREATER_EQUAL_1_8 or self._emit_nvtx: + if not _TORCH_GREATER_EQUAL_1_8_1 or self._emit_nvtx: return if action_name in self.step_action_names: @@ -430,7 +430,7 @@ def summary(self) -> str: if not self.function_events: return "" - if self._export_to_chrome and not _TORCH_GREATER_EQUAL_1_8: + if self._export_to_chrome and not _TORCH_GREATER_EQUAL_1_8_1: filename = f"{self.local_rank}_trace.json" path_to_trace = (filename if self.dirpath is None else os.path.join(self.dirpath, filename)) self.function_events.export_chrome_trace(path_to_trace) @@ -447,7 +447,7 @@ def _create_profilers(self) -> None: self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) else: self._parent_profiler = None - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: self.profiler = self._create_profiler(torch.profiler.profile) else: self.profiler = self._create_profiler(torch.autograd.profiler.profile) @@ -462,7 +462,7 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: def _cache_functions_events(self): if self._emit_nvtx: return - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: self.function_events = self.profiler.events() else: self.function_events = self.profiler.function_events diff --git a/pytorch_lightning/utilities/imports.py b/pytorch_lightning/utilities/imports.py index 5a780660a0a99..6909f992c917e 100644 --- a/pytorch_lightning/utilities/imports.py +++ b/pytorch_lightning/utilities/imports.py @@ -69,6 +69,7 @@ def _compare_version(package: str, op, version) -> bool: _TORCH_GREATER_EQUAL_1_6 = _compare_version("torch", operator.ge, "1.6.0") _TORCH_GREATER_EQUAL_1_7 = _compare_version("torch", operator.ge, "1.7.0") _TORCH_GREATER_EQUAL_1_8 = _compare_version("torch", operator.ge, "1.8.0") +_TORCH_GREATER_EQUAL_1_8_1 = _compare_version("torch", operator.ge, "1.8.1") _APEX_AVAILABLE = _module_available("apex.amp") _BOLTS_AVAILABLE = _module_available('pl_bolts') diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 7b8b9de57cae2..1d7a752319c05 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -27,7 +27,7 @@ from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler from pytorch_lightning.profiler.pytorch import RegisterRecordFunction from pytorch_lightning.utilities.exceptions import MisconfigurationException -from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8 +from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8_1 from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -266,7 +266,7 @@ def pytorch_profiler(tmpdir): return PyTorchProfiler(dirpath=tmpdir, filename="profiler") -@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="This feature isn't support with PyTorch 1.8 profiler") +@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8_1, reason="This feature isn't support with PyTorch 1.8 profiler") def test_pytorch_profiler_describe(pytorch_profiler): """Ensure the profiler won't fail when reporting the summary.""" with pytorch_profiler.profile("on_test_start"): @@ -314,7 +314,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): ) trainer.fit(model) - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: expected = ('validation_step', ) else: expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') @@ -328,7 +328,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): path = os.path.join(pytorch_profiler.dirpath, expected) assert Path(path).read_text() - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: files = os.listdir(pytorch_profiler.dirpath) files = sorted([file for file in files if file.endswith('.json')]) local_rank = trainer.local_rank @@ -355,7 +355,7 @@ def test_pytorch_profiler_trainer_test(tmpdir): path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") - if _TORCH_GREATER_EQUAL_1_8: + if _TORCH_GREATER_EQUAL_1_8_1: files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) assert any(f'test_step_{trainer.local_rank}' in f for f in files) From 79efcb257b973541df152eff96e0bc7cf9c5ff52 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 18:28:09 +0100 Subject: [PATCH 104/126] RunIf. Extra code. Check segfault --- tests/helpers/runif.py | 7 +++++++ tests/test_profiler.py | 47 +++--------------------------------------- 2 files changed, 10 insertions(+), 44 deletions(-) diff --git a/tests/helpers/runif.py b/tests/helpers/runif.py index fe85fbaea9025..2ad479cf8fa26 100644 --- a/tests/helpers/runif.py +++ b/tests/helpers/runif.py @@ -56,6 +56,7 @@ def __new__( *args, min_gpus: int = 0, min_torch: Optional[str] = None, + max_torch: Optional[str] = None, min_python: Optional[str] = None, quantization: bool = False, amp_apex: bool = False, @@ -76,6 +77,7 @@ def __new__( args: native pytest.mark.skipif arguments min_gpus: min number of gpus required to run test min_torch: minimum pytorch version to run test + min_torch: maximum pytorch version to run test min_python: minimum python version required to run test quantization: if `torch.quantization` package is required to run test amp_apex: NVIDIA Apex is installed @@ -102,6 +104,11 @@ def __new__( conditions.append(torch_version < LooseVersion(min_torch)) reasons.append(f"torch>={min_torch}") + if max_torch: + torch_version = LooseVersion(get_distribution("torch").version) + conditions.append(torch_version >= LooseVersion(max_torch)) + reasons.append(f"torch<{max_torch}") + if min_python: py_version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}" conditions.append(py_version < LooseVersion(min_python)) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index bbe5f26baedaf..81105380a3095 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -265,7 +265,7 @@ def pytorch_profiler(tmpdir): return PyTorchProfiler(dirpath=tmpdir, filename="profiler") -@pytest.mark.skipif(_TORCH_GREATER_EQUAL_1_8, reason="This feature isn't support with PyTorch 1.8 profiler") +@RunIf(max_torch="1.8.0") def test_pytorch_profiler_describe(pytorch_profiler): """Ensure the profiler won't fail when reporting the summary.""" with pytorch_profiler.profile("on_test_start"): @@ -284,8 +284,6 @@ def test_pytorch_profiler_raises(pytorch_profiler): PyTorchProfiler(profiled_functions=["a"], record_functions=["b"]) -# TODO: address this -@pytest.mark.skip(reason="Segmentation fault (core dumped)") @RunIf(min_torch="1.6.0") def test_advanced_profiler_cprofile_deepcopy(tmpdir): """Checks for pickle issue reported in #6522""" @@ -343,7 +341,7 @@ def test_pytorch_profiler_trainer_test(tmpdir): trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, - limit_test_batches=10, + limit_test_batches=2, profiler=pytorch_profiler, ) trainer.test(model) @@ -388,7 +386,7 @@ def test_pytorch_profiler_trainer_validate(tmpdir, pytorch_profiler): trainer = Trainer( default_root_dir=tmpdir, max_epochs=1, - limit_val_batches=5, + limit_val_batches=2, profiler=pytorch_profiler, ) trainer.validate(model) @@ -451,45 +449,6 @@ def test_pytorch_profiler_nested_emit_nvtx(tmpdir): trainer.fit(model) -@RunIf(min_torch="1.5.0") -def test_register_record_function(tmpdir): - - use_cuda = torch.cuda.is_available() - pytorch_profiler = PyTorchProfiler( - export_to_chrome=False, - record_functions=["a"], - use_cuda=use_cuda, - dirpath=tmpdir, - filename="profiler", - schedule=None, - on_trace_ready=None, - ) - - class TestModel(BoringModel): - - def __init__(self): - super().__init__() - self.layer = torch.nn.Sequential(torch.nn.Linear(8, 8), torch.nn.ReLU(), torch.nn.Linear(8, 2)) - - model = TestModel() - input = torch.rand((1, 8)) - - if use_cuda: - model = model.cuda() - input = input.cuda() - - with pytorch_profiler.profile("a"): - with RegisterRecordFunction(model): - model(input) - - pytorch_profiler.describe() - event_names = [e.name for e in pytorch_profiler.function_events] - assert 'torch.nn.modules.container.Sequential: layer' in event_names - assert 'torch.nn.modules.linear.Linear: layer.0' in event_names - assert 'torch.nn.modules.activation.ReLU: layer.1' in event_names - assert 'torch.nn.modules.linear.Linear: layer.2' in event_names - - @RunIf(min_torch="1.5.0") def test_register_record_function(tmpdir): From 11e3150d00e221ae597d228a39b85220654678bb Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 17:29:09 +0000 Subject: [PATCH 105/126] resolve tests --- tests/test_profiler.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/test_profiler.py b/tests/test_profiler.py index f366471ff5caf..4eede47e86687 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -373,12 +373,6 @@ def test_pytorch_profiler_trainer_predict(tmpdir): trainer.predict(model) assert sum(e.name == 'predict_step' for e in pytorch_profiler.function_events) - - model = BoringModel() - trainer = Trainer( - default_root_dir=tmpdir, fast_dev_run=True, profiler=pytorch_profiler, gpus=int(torch.cuda.is_available()) - ) - trainer.fit(model) path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") @@ -501,6 +495,7 @@ def test_register_record_function(tmpdir): use_cuda=use_cuda, dirpath=tmpdir, filename="profiler", + schedule=None, ) class TestModel(BoringModel): From 2cd2be1179fc2b7e354d31e1ed835f4bf4247a79 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 18:30:59 +0100 Subject: [PATCH 106/126] Typo. Bad merge --- tests/helpers/runif.py | 2 +- tests/test_profiler.py | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/helpers/runif.py b/tests/helpers/runif.py index 2ad479cf8fa26..5483e33d9cddb 100644 --- a/tests/helpers/runif.py +++ b/tests/helpers/runif.py @@ -77,7 +77,7 @@ def __new__( args: native pytest.mark.skipif arguments min_gpus: min number of gpus required to run test min_torch: minimum pytorch version to run test - min_torch: maximum pytorch version to run test + max_torch: maximum pytorch version to run test min_python: minimum python version required to run test quantization: if `torch.quantization` package is required to run test amp_apex: NVIDIA Apex is installed diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 468d52a23b033..e1eeff4525e64 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -372,11 +372,6 @@ def test_pytorch_profiler_trainer_predict(tmpdir): assert sum(e.name == 'predict_step' for e in pytorch_profiler.function_events) - model = BoringModel() - trainer = Trainer( - default_root_dir=tmpdir, fast_dev_run=True, profiler=pytorch_profiler, gpus=int(torch.cuda.is_available()) - ) - trainer.fit(model) path = pytorch_profiler.dirpath / f"predict-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") From 496efab2ee44cfbe89e33416ba90e8b6adba95e4 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 18:36:57 +0100 Subject: [PATCH 107/126] Fixing a bad merge --- pytorch_lightning/profiler/pytorch.py | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 584465ad13db0..edc1bfe7408ac 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -28,12 +28,6 @@ from pytorch_lightning.utilities.exceptions import MisconfigurationException from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8_1 -if TYPE_CHECKING: - from torch.autograd.profiler import EventList - from torch.utils.hooks import RemovableHandle - - from pytorch_lightning.core.lightning import LightningModule - if TYPE_CHECKING: from torch.autograd.profiler import EventList from torch.utils.hooks import RemovableHandle @@ -256,19 +250,12 @@ def __init__( Raises: MisconfigurationException: If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``. + TODO: update this """ super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) record_functions = self.__deprecation_check(profiled_functions, record_functions) - self.profiler: Optional[_PROFILER] = None - self.function_events: Optional[EventList] = None - - if isinstance(sort_by_key, str) and sort_by_key not in self.AVAILABLE_SORT_KEYS: - raise MisconfigurationException( - f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " - ) - self._group_by_input_shapes = group_by_input_shapes and profiler_kwargs.get("record_shapes", False) self._emit_nvtx = emit_nvtx self._export_to_chrome = export_to_chrome @@ -279,11 +266,12 @@ def __init__( self._record_module_names = record_module_names self._profiler_kwargs = profiler_kwargs + self.profiler: Optional[_PROFILER] = None + self.function_events: Optional['EventList'] = None self._lightning_module: Optional['LightningModule'] = None # set by ProfilerConnector self._register: Optional[RegisterRecordFunction] = None self._parent_profiler: Optional[_PROFILER] = None self._recording_map: Dict[str, record_function] = {} - self._profiler_instantiated: bool = False self._start_action_name: Optional[str] = None self._schedule: Optional[ScheduleWrapper] = None From 9ced644e86fb4a83d8e8ff5e421e2e3a6f3e67ad Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 17:49:53 +0000 Subject: [PATCH 108/126] replace for kineto --- pytorch_lightning/profiler/pytorch.py | 24 +++++++++++++----------- pytorch_lightning/utilities/imports.py | 2 +- tests/test_profiler.py | 8 ++++---- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index edc1bfe7408ac..611f776ee9b3c 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -26,7 +26,7 @@ from pytorch_lightning.profiler.profilers import BaseProfiler from pytorch_lightning.utilities.distributed import rank_zero_warn from pytorch_lightning.utilities.exceptions import MisconfigurationException -from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8_1 +from pytorch_lightning.utilities.imports import _KINETO_AVAILABLE if TYPE_CHECKING: from torch.autograd.profiler import EventList @@ -94,7 +94,7 @@ def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: self._handles = {} -if _TORCH_GREATER_EQUAL_1_8_1: +if _KINETO_AVAILABLE: from torch.profiler import ProfilerAction, ProfilerActivity, tensorboard_trace_handler class ScheduleWrapper: @@ -275,7 +275,7 @@ def __init__( self._start_action_name: Optional[str] = None self._schedule: Optional[ScheduleWrapper] = None - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: has_schedule = "schedule" in profiler_kwargs self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs schedule = profiler_kwargs.get("schedule", None) @@ -294,9 +294,11 @@ def __init__( self._schedule = ScheduleWrapper(schedule) if schedule is not None else schedule self._profiler_kwargs["schedule"] = self._schedule self._profiler_kwargs["activities"] = activities or self._default_activities() - self._export_to_flame_graph = profiler_kwargs.get("export_to_flame_graph", True) + self._export_to_flame_graph = profiler_kwargs.get("export_to_flame_graph", False) self._metric = profiler_kwargs.get("metric", "self_cpu_time_total") - self._profiler_kwargs["with_stack"] = profiler_kwargs.get("with_stack", True) or self._export_to_flame_graph + self._profiler_kwargs["with_stack"] = profiler_kwargs.get( + "with_stack", False + ) or self._export_to_flame_graph if self._sort_by_key not in self.AVAILABLE_SORT_KEYS: raise MisconfigurationException( @@ -305,11 +307,11 @@ def __init__( @staticmethod def _default_schedule() -> Optional[Callable]: - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: return torch.profiler.schedule(wait=1, warmup=1, active=2) def _default_activities(self) -> List: - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: activities = [ProfilerActivity.CPU] * self._profiler_kwargs.get("use_cpu", True) activities += [ProfilerActivity.CUDA] * self._profiler_kwargs.get("use_cuda", torch.cuda.is_available()) return activities @@ -384,7 +386,7 @@ def stop(self, action_name: str) -> None: self._recording_map[action_name].__exit__(None, None, None) del self._recording_map[action_name] - if not _TORCH_GREATER_EQUAL_1_8_1 or self._emit_nvtx: + if not _KINETO_AVAILABLE or self._emit_nvtx: return if action_name in self.step_action_names: @@ -418,7 +420,7 @@ def summary(self) -> str: if not self.function_events: return "" - if self._export_to_chrome and not _TORCH_GREATER_EQUAL_1_8_1: + if self._export_to_chrome and not _KINETO_AVAILABLE: filename = f"{self.local_rank}_trace.json" path_to_trace = (filename if self.dirpath is None else os.path.join(self.dirpath, filename)) self.function_events.export_chrome_trace(path_to_trace) @@ -435,7 +437,7 @@ def _create_profilers(self) -> None: self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) else: self._parent_profiler = None - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: self.profiler = self._create_profiler(torch.profiler.profile) else: self.profiler = self._create_profiler(torch.autograd.profiler.profile) @@ -450,7 +452,7 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: def _cache_functions_events(self): if self._emit_nvtx: return - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: self.function_events = self.profiler.events() else: self.function_events = self.profiler.function_events diff --git a/pytorch_lightning/utilities/imports.py b/pytorch_lightning/utilities/imports.py index 6909f992c917e..baeac9be57218 100644 --- a/pytorch_lightning/utilities/imports.py +++ b/pytorch_lightning/utilities/imports.py @@ -69,8 +69,8 @@ def _compare_version(package: str, op, version) -> bool: _TORCH_GREATER_EQUAL_1_6 = _compare_version("torch", operator.ge, "1.6.0") _TORCH_GREATER_EQUAL_1_7 = _compare_version("torch", operator.ge, "1.7.0") _TORCH_GREATER_EQUAL_1_8 = _compare_version("torch", operator.ge, "1.8.0") -_TORCH_GREATER_EQUAL_1_8_1 = _compare_version("torch", operator.ge, "1.8.1") +_KINETO_AVAILABLE = torch.profiler.kineto_available() if _TORCH_GREATER_EQUAL_1_8 else False _APEX_AVAILABLE = _module_available("apex.amp") _BOLTS_AVAILABLE = _module_available('pl_bolts') _DEEPSPEED_AVAILABLE = not _IS_WINDOWS and _module_available('deepspeed') diff --git a/tests/test_profiler.py b/tests/test_profiler.py index 3a78f630c51b8..b32caa17ab75e 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -26,7 +26,7 @@ from pytorch_lightning.profiler import AdvancedProfiler, PyTorchProfiler, SimpleProfiler from pytorch_lightning.profiler.pytorch import RegisterRecordFunction from pytorch_lightning.utilities.exceptions import MisconfigurationException -from pytorch_lightning.utilities.imports import _TORCH_GREATER_EQUAL_1_8_1 +from pytorch_lightning.utilities.imports import _KINETO_AVAILABLE from tests.helpers import BoringModel from tests.helpers.runif import RunIf @@ -312,7 +312,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): ) trainer.fit(model) - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: expected = ('validation_step', ) else: expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') @@ -326,7 +326,7 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): path = pytorch_profiler.dirpath / expected assert path.read_text("utf-8") - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: files = os.listdir(pytorch_profiler.dirpath) files = [file for file in files if file.endswith('.json')] assert len(files) == 2, files @@ -352,7 +352,7 @@ def test_pytorch_profiler_trainer_test(tmpdir): path = pytorch_profiler.dirpath / f"test-{pytorch_profiler.filename}.txt" assert path.read_text("utf-8") - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: files = sorted([file for file in os.listdir(tmpdir) if file.endswith('.json')]) assert any(f'test_step_{trainer.local_rank}' in f for f in files) From ee8586480814e5ed3a3ef4cddcefb21ebcef153e Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 17:57:42 +0000 Subject: [PATCH 109/126] Update pytorch_lightning/profiler/pytorch.py Co-authored-by: ananthsub --- pytorch_lightning/profiler/pytorch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 611f776ee9b3c..4d45e9fcb0bed 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -338,7 +338,7 @@ def __deprecation_check(self, profiled_functions: Optional[List[str]], return record_functions @property - def start_action_names(self): + def start_action_names(self) -> Set[str]: return set(list(self.START_RECORD_FUNCTIONS) + list(self._record_functions)) @property From efaa4597ddcb2d96892b79e86b92a17e2fff955c Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 17:57:49 +0000 Subject: [PATCH 110/126] Update pytorch_lightning/profiler/pytorch.py Co-authored-by: ananthsub --- pytorch_lightning/profiler/pytorch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 4d45e9fcb0bed..a8f6307b24509 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -342,7 +342,7 @@ def start_action_names(self) -> Set[str]: return set(list(self.START_RECORD_FUNCTIONS) + list(self._record_functions)) @property - def step_action_names(self): + def step_action_names(self) -> Set[str]: return set(list(self.STEP_FUNCTIONS) + list(self._record_functions)) def start(self, action_name: str) -> None: From e73becc39d43acbaa39521e439549b42367da3c6 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 19:03:43 +0100 Subject: [PATCH 111/126] Minor changes --- pytorch_lightning/profiler/profilers.py | 4 +- pytorch_lightning/profiler/pytorch.py | 63 ++++++++++++------------- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/pytorch_lightning/profiler/profilers.py b/pytorch_lightning/profiler/profilers.py index 46d72583fb466..bc9e3541dbaa8 100644 --- a/pytorch_lightning/profiler/profilers.py +++ b/pytorch_lightning/profiler/profilers.py @@ -120,14 +120,14 @@ def _rank_zero_info(self, *args, **kwargs) -> None: if self._local_rank in (None, 0): log.info(*args, **kwargs) - def _prepare_filename(self) -> str: + def _prepare_filename(self, extension: str = ".txt") -> str: filename = "" if self._stage is not None: filename += f"{self._stage}-" filename += str(self.filename) if self._local_rank is not None: filename += f"-{self._local_rank}" - filename += ".txt" + filename += extension return filename def _prepare_streams(self) -> None: diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index edc1bfe7408ac..484bcd372d5ed 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -17,7 +17,7 @@ import os from functools import partial from pathlib import Path -from typing import Any, Callable, Dict, List, Optional, Type, TYPE_CHECKING, Union +from typing import Any, Callable, Dict, List, Optional, Set, Type, TYPE_CHECKING, Union import torch from torch import nn, Tensor @@ -303,20 +303,11 @@ def __init__( f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - @staticmethod - def _default_schedule() -> Optional[Callable]: - if _TORCH_GREATER_EQUAL_1_8_1: - return torch.profiler.schedule(wait=1, warmup=1, active=2) - - def _default_activities(self) -> List: - if _TORCH_GREATER_EQUAL_1_8_1: - activities = [ProfilerActivity.CPU] * self._profiler_kwargs.get("use_cpu", True) - activities += [ProfilerActivity.CUDA] * self._profiler_kwargs.get("use_cuda", torch.cuda.is_available()) - return activities - return [] - - def __deprecation_check(self, profiled_functions: Optional[List[str]], - record_functions: Optional[List[str]]) -> List[str]: + def __deprecation_check( + self, + profiled_functions: Optional[List[str]], + record_functions: Optional[List[str]], + ) -> List[str]: if record_functions is None: record_functions = [] @@ -335,13 +326,25 @@ def __deprecation_check(self, profiled_functions: Optional[List[str]], return record_functions + @staticmethod + def _default_schedule() -> Optional[callable]: + if _TORCH_GREATER_EQUAL_1_8_1: + return torch.profiler.schedule(wait=1, warmup=1, active=2) + + def _default_activities(self) -> list: + if _TORCH_GREATER_EQUAL_1_8_1: + activities = [ProfilerActivity.CPU] * self._profiler_kwargs.get("use_cpu", True) + activities += [ProfilerActivity.CUDA] * self._profiler_kwargs.get("use_cuda", torch.cuda.is_available()) + return activities + return [] + @property - def start_action_names(self): - return set(list(self.START_RECORD_FUNCTIONS) + list(self._record_functions)) + def start_action_names(self) -> Set[str]: + return set(self.START_RECORD_FUNCTIONS + self._record_functions) @property - def step_action_names(self): - return set(list(self.STEP_FUNCTIONS) + list(self._record_functions)) + def step_action_names(self) -> Set[str]: + return set(self.STEP_FUNCTIONS + self._record_functions) def start(self, action_name: str) -> None: if self.profiler is None and action_name in self._record_functions_start: @@ -392,15 +395,15 @@ def stop(self, action_name: str) -> None: self._schedule._current_action = action_name def on_trace_ready(profiler): - local_rank = 0 if self.local_rank is None else self.local_rank - filename = f"{action_name}_{local_rank}" + filename = f"{action_name}_{self.local_rank}" if self.dirpath is not None: if self._export_to_chrome: - tensorboard_trace_handler(self.dirpath, filename)(profiler) + handler = tensorboard_trace_handler(self.dirpath, filename) + handler(profiler) if self._export_to_flame_graph: - path = os.path.join(self.dirpath, f"{filename}.stack") + path = os.path.join(self.dirpath, self._prepare_filename(extension=".stack")) profiler.export_stacks(path, metric=self._metric) else: rank_zero_warn("The PyTorchProfiler failed to export trace as `dirpath` is None") @@ -435,10 +438,9 @@ def _create_profilers(self) -> None: self.profiler = self._create_profiler(torch.autograd.profiler.emit_nvtx) else: self._parent_profiler = None - if _TORCH_GREATER_EQUAL_1_8_1: - self.profiler = self._create_profiler(torch.profiler.profile) - else: - self.profiler = self._create_profiler(torch.autograd.profiler.profile) + self.profiler = self._create_profiler( + torch.profiler.profile if _TORCH_GREATER_EQUAL_1_8_1 else torch.autograd.profiler.profile + ) if self._record_module_names and self._lightning_module is not None: self._register = RegisterRecordFunction(self._lightning_module) @@ -447,13 +449,10 @@ def _create_profiler(self, profiler: Type[_PROFILER]) -> _PROFILER: kwargs = {k: v for k, v in self._profiler_kwargs.items() if k in init_parameters} return profiler(**kwargs) - def _cache_functions_events(self): + def _cache_functions_events(self) -> None: if self._emit_nvtx: return - if _TORCH_GREATER_EQUAL_1_8_1: - self.function_events = self.profiler.events() - else: - self.function_events = self.profiler.function_events + self.function_events = self.profiler.events() if _TORCH_GREATER_EQUAL_1_8_1 else self.profiler.function_events def _delete_profilers(self) -> None: if self.profiler is not None: From 92fa085ab33f066eb89ec5bfc8f9d2d4a3fb61db Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 19:14:18 +0100 Subject: [PATCH 112/126] Bad merge --- pytorch_lightning/profiler/pytorch.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 00872ee0bc665..95ea9a7a0dbc3 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -261,8 +261,8 @@ def __init__( self._export_to_chrome = export_to_chrome self._row_limit = row_limit self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" - self._record_functions_start = set(record_functions + list(self.START_RECORD_FUNCTIONS)) - self._record_functions = set(record_functions + list(self.RECORD_FUNCTIONS)) + self._record_functions_start = set(record_functions + self.START_RECORD_FUNCTIONS) + self._record_functions = set(record_functions + self.RECORD_FUNCTIONS) self._record_module_names = record_module_names self._profiler_kwargs = profiler_kwargs @@ -278,21 +278,21 @@ def __init__( if _KINETO_AVAILABLE: has_schedule = "schedule" in profiler_kwargs self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs + schedule = profiler_kwargs.get("schedule", None) - activities = profiler_kwargs.get("activities", None) if schedule is not None: if not isinstance(schedule, Callable): - raise MisconfigurationException(f"Found schedule: {schedule}. Schedule should be a callable.") + raise MisconfigurationException(f"Schedule should be a callable. Found: {schedule}") action = schedule(0) if not isinstance(action, ProfilerAction): raise MisconfigurationException( - f"Found schedule: {schedule}. " - "Schedule should be a callable returning `torch.profiler.ProfilerAction`. " + f"Schedule should return a `torch.profiler.ProfilerAction`. Found: {action}" ) - schedule = schedule if has_schedule else self._default_schedule() self._schedule = ScheduleWrapper(schedule) if schedule is not None else schedule self._profiler_kwargs["schedule"] = self._schedule + + activities = profiler_kwargs.get("activities", None) self._profiler_kwargs["activities"] = activities or self._default_activities() self._export_to_flame_graph = profiler_kwargs.get("export_to_flame_graph", False) self._metric = profiler_kwargs.get("metric", "self_cpu_time_total") @@ -330,11 +330,11 @@ def __deprecation_check( @staticmethod def _default_schedule() -> Optional[callable]: - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: return torch.profiler.schedule(wait=1, warmup=1, active=2) def _default_activities(self) -> list: - if _TORCH_GREATER_EQUAL_1_8_1: + if _KINETO_AVAILABLE: activities = [ProfilerActivity.CPU] * self._profiler_kwargs.get("use_cpu", True) activities += [ProfilerActivity.CUDA] * self._profiler_kwargs.get("use_cuda", torch.cuda.is_available()) return activities From a5093cb09fde5baf1c539c857f8c67b60e387e61 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 19:17:36 +0100 Subject: [PATCH 113/126] Use lists for flexibility --- pytorch_lightning/profiler/pytorch.py | 16 ++++++++-------- tests/test_profiler.py | 7 +++---- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 95ea9a7a0dbc3..7742fd570bbe3 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -172,11 +172,11 @@ def __call__(self, num_step: int) -> 'ProfilerAction': class PyTorchProfiler(BaseProfiler): - RECORD_FUNCTIONS = ( + RECORD_FUNCTIONS = [ "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict_step" - ) - STEP_FUNCTIONS = ("training_step_and_backward", "validation_step", "test_step", "predict_step") - AVAILABLE_SORT_KEYS = ( + ] + STEP_FUNCTIONS = ["training_step_and_backward", "validation_step", "test_step", "predict_step"] + AVAILABLE_SORT_KEYS = [ "cpu_time", "cuda_time", "cpu_time_total", @@ -186,8 +186,8 @@ class PyTorchProfiler(BaseProfiler): "self_cpu_memory_usage", "self_cuda_memory_usage", "count", - ) - START_RECORD_FUNCTIONS = ('on_train_start', 'on_validation_start', 'on_test_start', 'on_predict_start') + ] + START_RECORD_FUNCTIONS = ['on_train_start', 'on_validation_start', 'on_test_start', 'on_predict_start'] def __init__( self, @@ -342,11 +342,11 @@ def _default_activities(self) -> list: @property def start_action_names(self) -> Set[str]: - return set(self.START_RECORD_FUNCTIONS + self._record_functions) + return set(self.START_RECORD_FUNCTIONS) | self._record_functions @property def step_action_names(self) -> Set[str]: - return set(self.STEP_FUNCTIONS + self._record_functions) + return set(self.STEP_FUNCTIONS) | self._record_functions def start(self, action_name: str) -> None: if self.profiler is None and action_name in self._record_functions_start: diff --git a/tests/test_profiler.py b/tests/test_profiler.py index b32caa17ab75e..e0b4a6cea19d0 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -312,10 +312,9 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): ) trainer.fit(model) - if _KINETO_AVAILABLE: - expected = ('validation_step', ) - else: - expected = ('validation_step', 'training_step_and_backward', 'training_step', 'backward') + expected = ['validation_step'] + if not _KINETO_AVAILABLE: + expected += ['training_step_and_backward', 'training_step', 'backward'] for name in expected: assert sum(e.name == name for e in pytorch_profiler.function_events), name From 5ccbfd0568850e1ce592d1d3dcc05b3a207e0651 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 19:31:30 +0100 Subject: [PATCH 114/126] Use sets --- pytorch_lightning/profiler/pytorch.py | 34 ++++++++++++--------------- tests/test_profiler.py | 8 +++---- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 7742fd570bbe3..d5aad9be7ade6 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -172,11 +172,11 @@ def __call__(self, num_step: int) -> 'ProfilerAction': class PyTorchProfiler(BaseProfiler): - RECORD_FUNCTIONS = [ + RECORD_FUNCTIONS = { "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict_step" - ] - STEP_FUNCTIONS = ["training_step_and_backward", "validation_step", "test_step", "predict_step"] - AVAILABLE_SORT_KEYS = [ + } + STEP_FUNCTIONS = {"training_step_and_backward", "validation_step", "test_step", "predict_step"} + AVAILABLE_SORT_KEYS = { "cpu_time", "cuda_time", "cpu_time_total", @@ -186,8 +186,8 @@ class PyTorchProfiler(BaseProfiler): "self_cpu_memory_usage", "self_cuda_memory_usage", "count", - ] - START_RECORD_FUNCTIONS = ['on_train_start', 'on_validation_start', 'on_test_start', 'on_predict_start'] + } + START_RECORD_FUNCTIONS = {'on_train_start', 'on_validation_start', 'on_test_start', 'on_predict_start'} def __init__( self, @@ -198,7 +198,7 @@ def __init__( export_to_chrome: bool = True, row_limit: int = 20, sort_by_key: Optional[str] = None, - record_functions: List[str] = None, + record_functions: Set[str] = None, record_module_names: bool = True, profiled_functions: Optional[List] = None, output_filename: Optional[str] = None, @@ -240,7 +240,7 @@ def __init__( ``cuda_time_total``, ``cpu_memory_usage``, ``cuda_memory_usage``, ``self_cpu_memory_usage``, ``self_cuda_memory_usage``, ``count``. - record_functions: list of profiled functions which will create a context manager on. + record_functions: Set of profiled functions which will create a context manager on. Any other will be pass through. record_module_names: Whether to add module names while recording autograd operation. @@ -261,8 +261,8 @@ def __init__( self._export_to_chrome = export_to_chrome self._row_limit = row_limit self._sort_by_key = sort_by_key or f"{'cuda' if profiler_kwargs.get('use_cuda', False) else 'cpu'}_time_total" - self._record_functions_start = set(record_functions + self.START_RECORD_FUNCTIONS) - self._record_functions = set(record_functions + self.RECORD_FUNCTIONS) + self._record_functions_start = record_functions | self.START_RECORD_FUNCTIONS + self._record_functions = record_functions | self.RECORD_FUNCTIONS self._record_module_names = record_module_names self._profiler_kwargs = profiler_kwargs @@ -308,10 +308,10 @@ def __init__( def __deprecation_check( self, profiled_functions: Optional[List[str]], - record_functions: Optional[List[str]], - ) -> List[str]: + record_functions: Optional[Set[str]], + ) -> Set[str]: if record_functions is None: - record_functions = [] + record_functions = set() if profiled_functions is not None: rank_zero_warn( @@ -319,7 +319,7 @@ def __deprecation_check( " `record_functions` in v1.3 and will be removed in v1.5", DeprecationWarning ) if not record_functions: - record_functions += profiled_functions + record_functions |= set(profiled_functions) else: raise MisconfigurationException( "You set `PytorchProfiler.profiled_functions` and `PyTorchProfiler.record_functions`." @@ -340,13 +340,9 @@ def _default_activities(self) -> list: return activities return [] - @property - def start_action_names(self) -> Set[str]: - return set(self.START_RECORD_FUNCTIONS) | self._record_functions - @property def step_action_names(self) -> Set[str]: - return set(self.STEP_FUNCTIONS) | self._record_functions + return self.STEP_FUNCTIONS | self._record_functions def start(self, action_name: str) -> None: if self.profiler is None and action_name in self._record_functions_start: diff --git a/tests/test_profiler.py b/tests/test_profiler.py index e0b4a6cea19d0..a6e33b3366f33 100644 --- a/tests/test_profiler.py +++ b/tests/test_profiler.py @@ -312,9 +312,9 @@ def test_pytorch_profiler_trainer_ddp(tmpdir, pytorch_profiler): ) trainer.fit(model) - expected = ['validation_step'] + expected = {'validation_step'} if not _KINETO_AVAILABLE: - expected += ['training_step_and_backward', 'training_step', 'backward'] + expected |= {'training_step_and_backward', 'training_step', 'backward'} for name in expected: assert sum(e.name == name for e in pytorch_profiler.function_events), name @@ -396,7 +396,7 @@ def test_pytorch_profiler_nested(tmpdir): """Ensure that the profiler handles nested context""" pytorch_profiler = PyTorchProfiler( - profiled_functions=["a", "b", "c"], use_cuda=False, dirpath=tmpdir, filename="profiler", schedule=None + record_functions={"a", "b", "c"}, use_cuda=False, dirpath=tmpdir, filename="profiler", schedule=None ) with pytorch_profiler.profile("a"): @@ -450,7 +450,7 @@ def test_register_record_function(tmpdir): use_cuda = torch.cuda.is_available() pytorch_profiler = PyTorchProfiler( export_to_chrome=False, - record_functions=["a"], + record_functions={"a"}, use_cuda=use_cuda, dirpath=tmpdir, filename="profiler", From d1c0915771b8d7cd3db5f450a193791d21995e50 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 19:32:20 +0100 Subject: [PATCH 115/126] predict_step --- pytorch_lightning/profiler/pytorch.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index d5aad9be7ade6..8038c9d571875 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -115,10 +115,10 @@ def __init__(self, schedule: Callable) -> None: self._current_action: Optional[str] = None self._start_action_name: Optional[str] = None - def setup(self, start_action_name: str): + def setup(self, start_action_name: str) -> None: self._start_action_name = start_action_name - def pre_step(self, current_action: str): + def pre_step(self, current_action: str) -> None: self._current_action = current_action @property @@ -129,7 +129,7 @@ def num_step(self) -> int: return self._num_validation_step elif self._current_action == "test_step": return self._num_test_step - elif self._current_action == "predict": + elif self._current_action == "predict_step": return self._num_predict_step else: return 0 @@ -144,7 +144,7 @@ def _step(self) -> None: self._num_validation_step += 1 elif self._current_action == "test_step": self._num_test_step += 1 - elif self._current_action == "predict": + elif self._current_action == "predict_step": self._num_predict_step += 1 @property From 8098aaf88dc8a87c3febd324a34553383af3d7a3 Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 19:33:53 +0100 Subject: [PATCH 116/126] Ananth's suggestion --- pytorch_lightning/profiler/pytorch.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 8038c9d571875..6549a659853fa 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -333,12 +333,15 @@ def _default_schedule() -> Optional[callable]: if _KINETO_AVAILABLE: return torch.profiler.schedule(wait=1, warmup=1, active=2) - def _default_activities(self) -> list: - if _KINETO_AVAILABLE: - activities = [ProfilerActivity.CPU] * self._profiler_kwargs.get("use_cpu", True) - activities += [ProfilerActivity.CUDA] * self._profiler_kwargs.get("use_cuda", torch.cuda.is_available()) + def _default_activities(self) -> List[ProfilerActivity]: + activities = [] + if not _KINETO_AVAILABLE: return activities - return [] + if self._profiler_kwargs.get("use_cpu", True): + activities.append(ProfilerActivity.CPU) + if self._profiler_kwargs.get("use_cuda", torch.cuda.is_available()): + activities.append(ProfilerActivity.CUDA) + return activities @property def step_action_names(self) -> Set[str]: From 8b9bbf0f11b8366c6587ae82c78f5f9d607507c8 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 18:51:22 +0000 Subject: [PATCH 117/126] update --- pytorch_lightning/profiler/pytorch.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 6549a659853fa..c8a7e60714158 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -331,9 +331,10 @@ def __deprecation_check( @staticmethod def _default_schedule() -> Optional[callable]: if _KINETO_AVAILABLE: + # Those schedule defaults allow the profiling overhead to be negligible over training time. return torch.profiler.schedule(wait=1, warmup=1, active=2) - def _default_activities(self) -> List[ProfilerActivity]: + def _default_activities(self) -> List['ProfilerActivity']: activities = [] if not _KINETO_AVAILABLE: return activities From a74e835cd8eb4da7d817d0657611d8483cc6c0be Mon Sep 17 00:00:00 2001 From: Carlos Mocholi Date: Tue, 23 Mar 2021 19:53:48 +0100 Subject: [PATCH 118/126] Docs --- pytorch_lightning/profiler/__init__.py | 25 +++++++++++++------------ pytorch_lightning/profiler/pytorch.py | 5 +++-- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/pytorch_lightning/profiler/__init__.py b/pytorch_lightning/profiler/__init__.py index e09a5ea11a084..6ac6e16c18529 100644 --- a/pytorch_lightning/profiler/__init__.py +++ b/pytorch_lightning/profiler/__init__.py @@ -121,7 +121,8 @@ def custom_processing_step(self, data): Autograd includes a profiler that lets you inspect the cost of different operators inside your model - both on the CPU and GPU. -Find the Pytorch Profiler doc at [PyTorch Profiler](https://pytorch-lightning.readthedocs.io/en/stable/profiler.html) +To read more about the PyTorch Profiler and all its options, +have a look at its `docs `__ .. code-block:: python @@ -134,16 +135,16 @@ def custom_processing_step(self, data): This profiler works with PyTorch ``DistributedDataParallel``. -If ``output_filename`` is provided, each rank will save their profiled operation to their own file. +If ``filename`` is provided, each rank will save their profiled operation to their own file. The profiler +report can be quite long, so you setting a ``filename`` will save the report instead of logging it to the +output in your terminal. If no filename is given, it will be logged only on rank 0. +The profiler's results will be printed on the completion of ``{fit,validate,test,predict}``. -The profiler's results will be printed on the completion of a training `fit()`. This profiler -report can be quite long, so you can also specify an `output_filename` to save the report instead -of logging it to the output in your terminal. - -This profiler will record only for `training_step_and_backward`, `evaluation_step` and `test_step` functions by default. -The output below shows the profiling for the action `training_step_and_backward`. -The user can provide ``PyTorchProfiler(profiled_functions=[...])`` to extend the scope of profiled functions. +This profiler will record ``training_step_and_backward``, ``training_step``, ``backward``, +``validation_step``, ``test_step``, and ``predict_step`` by default. +The output below shows the profiling for the action ``training_step_and_backward``. +The user can provide ``PyTorchProfiler(record_functions={...})`` to extend the scope of profiled functions. .. note:: When using the PyTorch Profiler, wall clock time will not not be representative of the true wall clock time. This is due to forcing profiled operations to be measured synchronously, when many CUDA ops happen asynchronously. It is recommended to use this Profiler to find bottlenecks/breakdowns, however for end to end wall clock time use the `SimpleProfiler`. # noqa E501 @@ -184,13 +185,13 @@ def custom_processing_step(self, data): To visualize the profiled operation, you can either: -* Use:: +Use:: nvvp trace_name.prof -* Use:: +Or:: - python -c 'import torch; print(torch.autograd.profiler.load_nvprof("trace_name.prof"))' + python -c 'import torch; print(torch.autograd.profiler.load_nvprof("trace_name.prof"))' """ diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 6549a659853fa..699a2813f595a 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -250,7 +250,8 @@ def __init__( Raises: MisconfigurationException: If arg ``sort_by_key`` is not present in ``AVAILABLE_SORT_KEYS``. - TODO: update this + If arg ``schedule`` is not a ``Callable``. + If arg ``schedule`` does not return a ``torch.profiler.ProfilerAction``. """ super().__init__(dirpath=dirpath, filename=filename, output_filename=output_filename) @@ -333,7 +334,7 @@ def _default_schedule() -> Optional[callable]: if _KINETO_AVAILABLE: return torch.profiler.schedule(wait=1, warmup=1, active=2) - def _default_activities(self) -> List[ProfilerActivity]: + def _default_activities(self) -> List['ProfilerActivity']: activities = [] if not _KINETO_AVAILABLE: return activities From 3605b1a62ecf6617abe152fd9e2ed70098c91def Mon Sep 17 00:00:00 2001 From: thomas chaton Date: Tue, 23 Mar 2021 18:59:09 +0000 Subject: [PATCH 119/126] Update pl_examples/basic_examples/profiler_example.py Co-authored-by: Jirka Borovec --- pl_examples/basic_examples/profiler_example.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pl_examples/basic_examples/profiler_example.py b/pl_examples/basic_examples/profiler_example.py index c9bd92c016eb0..b6132857fcd96 100644 --- a/pl_examples/basic_examples/profiler_example.py +++ b/pl_examples/basic_examples/profiler_example.py @@ -33,12 +33,13 @@ from pl_examples import cli_lightning_logo from pytorch_lightning import LightningDataModule, LightningModule, Trainer -DEFAULT_CMD_LINE = "--max_epochs 1" -DEFAULT_CMD_LINE += "--limit_train_batches 15" -DEFAULT_CMD_LINE += "--limit_val_batches 15" -DEFAULT_CMD_LINE += "--profiler pytorch" -DEFAULT_CMD_LINE += f"--gpus {torch.cuda.is_available()}" -DEFAULT_CMD_LINE = DEFAULT_CMD_LINE.split(" ") +DEFAULT_CMD_LINE = ( + "--max_epochs 1" + "--limit_train_batches 15" + "--limit_val_batches 15" + "--profiler pytorch" + "--gpus {torch.cuda.is_available()}" +).split(" ") class ModelToProfile(LightningModule): From 8e931455181809e3722c77b35337d4be951282f5 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 19:09:03 +0000 Subject: [PATCH 120/126] update example --- pl_examples/basic_examples/profiler_example.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pl_examples/basic_examples/profiler_example.py b/pl_examples/basic_examples/profiler_example.py index b6132857fcd96..cb0a980fac66f 100644 --- a/pl_examples/basic_examples/profiler_example.py +++ b/pl_examples/basic_examples/profiler_example.py @@ -34,13 +34,12 @@ from pytorch_lightning import LightningDataModule, LightningModule, Trainer DEFAULT_CMD_LINE = ( - "--max_epochs 1" - "--limit_train_batches 15" - "--limit_val_batches 15" - "--profiler pytorch" - "--gpus {torch.cuda.is_available()}" -).split(" ") - + "--max_epochs", "1", + "--limit_train_batches", "15", + "--limit_val_batches", "15", + "--profiler", "pytorch", + "--gpus", f"{int(torch.cuda.is_available())}", +) class ModelToProfile(LightningModule): From af5d2efa0d4967e5af687aef123d1f86bd591d94 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 19:09:33 +0000 Subject: [PATCH 121/126] update example --- pl_examples/basic_examples/profiler_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pl_examples/basic_examples/profiler_example.py b/pl_examples/basic_examples/profiler_example.py index cb0a980fac66f..4fb73b918976e 100644 --- a/pl_examples/basic_examples/profiler_example.py +++ b/pl_examples/basic_examples/profiler_example.py @@ -38,7 +38,7 @@ "--limit_train_batches", "15", "--limit_val_batches", "15", "--profiler", "pytorch", - "--gpus", f"{int(torch.cuda.is_available())}", + "--gpus", f"{int(torch.cuda.is_available())}", ) class ModelToProfile(LightningModule): From f30fa58d9995a3f2c00f64d9c119e6d32a260283 Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Tue, 23 Mar 2021 20:35:40 +0100 Subject: [PATCH 122/126] definition --- pytorch_lightning/profiler/pytorch.py | 138 +++++++++++++------------- 1 file changed, 70 insertions(+), 68 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index a53314934ceec..11c34b3f5cd4f 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -34,6 +34,9 @@ from pytorch_lightning.core.lightning import LightningModule +if _KINETO_AVAILABLE: + from torch.profiler import ProfilerAction, ProfilerActivity, tensorboard_trace_handler + log = logging.getLogger(__name__) _PROFILER = Union[torch.autograd.profiler.profile, torch.cuda.profiler.profile, torch.autograd.profiler.emit_nvtx] @@ -94,80 +97,79 @@ def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: self._handles = {} -if _KINETO_AVAILABLE: - from torch.profiler import ProfilerAction, ProfilerActivity, tensorboard_trace_handler +class ScheduleWrapper: + """ + This class is used to override the schedule logic from the profiler and perform + recording for both `training_step`, `validation_step`. + """ - class ScheduleWrapper: - """ - This class is used to override the schedule logic from the profiler and perform - recording for both `training_step`, `validation_step`. - """ + def __init__(self, schedule: Callable) -> None: + if not _KINETO_AVAILABLE: + raise ModuleNotFoundError("You are trying to use `ScheduleWrapper` which require kineto install.") + self._schedule = schedule + self._num_training_step_and_backward = 0 + self._num_validation_step = 0 + self._num_test_step = 0 + self._num_predict_step = 0 + self._training_step_and_backward_reached_end = False + self._validation_step_reached_end = False + # used to stop profiler when `ProfilerAction.RECORD_AND_SAVE` is reached. + self._current_action: Optional[str] = None + self._start_action_name: Optional[str] = None - def __init__(self, schedule: Callable) -> None: - self._schedule = schedule - self._num_training_step_and_backward = 0 - self._num_validation_step = 0 - self._num_test_step = 0 - self._num_predict_step = 0 - self._training_step_and_backward_reached_end = False - self._validation_step_reached_end = False - # used to stop profiler when `ProfilerAction.RECORD_AND_SAVE` is reached. - self._current_action: Optional[str] = None - self._start_action_name: Optional[str] = None - - def setup(self, start_action_name: str) -> None: - self._start_action_name = start_action_name - - def pre_step(self, current_action: str) -> None: - self._current_action = current_action - - @property - def num_step(self) -> int: - if self._current_action == "training_step_and_backward": - return self._num_training_step_and_backward - elif self._current_action == "validation_step": - return self._num_validation_step - elif self._current_action == "test_step": - return self._num_test_step - elif self._current_action == "predict_step": - return self._num_predict_step + def setup(self, start_action_name: str) -> None: + self._start_action_name = start_action_name + + def pre_step(self, current_action: str) -> None: + self._current_action = current_action + + @property + def num_step(self) -> int: + if self._current_action == "training_step_and_backward": + return self._num_training_step_and_backward + elif self._current_action == "validation_step": + return self._num_validation_step + elif self._current_action == "test_step": + return self._num_test_step + elif self._current_action == "predict_step": + return self._num_predict_step + else: + return 0 + + def _step(self) -> None: + if self._current_action == "training_step_and_backward": + self._num_training_step_and_backward += 1 + elif self._current_action == "validation_step": + if self._start_action_name == "on_train_start" and self._num_training_step_and_backward > 0: + self._num_validation_step += 1 else: - return 0 + self._num_validation_step += 1 + elif self._current_action == "test_step": + self._num_test_step += 1 + elif self._current_action == "predict_step": + self._num_predict_step += 1 - def _step(self) -> None: - if self._current_action == "training_step_and_backward": - self._num_training_step_and_backward += 1 - elif self._current_action == "validation_step": - if self._start_action_name == "on_train_start" and self._num_training_step_and_backward > 0: - self._num_validation_step += 1 - else: - self._num_validation_step += 1 - elif self._current_action == "test_step": - self._num_test_step += 1 - elif self._current_action == "predict_step": - self._num_predict_step += 1 - - @property - def has_finished(self) -> bool: + @property + def has_finished(self) -> bool: + if self._current_action == "training_step_and_backward": + return self._training_step_and_backward_reached_end + elif self._current_action == "validation_step": + return self._validation_step_reached_end + return False + + def __call__(self, num_step: int) -> 'ProfilerAction': + # ignore the provided input. Keep internal state instead. + if self.has_finished: + return ProfilerAction.NONE + + self._step() + action = self._schedule(self.num_step) + if action == ProfilerAction.RECORD_AND_SAVE: if self._current_action == "training_step_and_backward": - return self._training_step_and_backward_reached_end + self._training_step_and_backward_reached_end = True elif self._current_action == "validation_step": - return self._validation_step_reached_end - return False - - def __call__(self, num_step: int) -> 'ProfilerAction': - # ignore the provided input. Keep internal state instead. - if self.has_finished: - return ProfilerAction.NONE - - self._step() - action = self._schedule(self.num_step) - if action == ProfilerAction.RECORD_AND_SAVE: - if self._current_action == "training_step_and_backward": - self._training_step_and_backward_reached_end = True - elif self._current_action == "validation_step": - self._validation_step_reached_end = True - return action + self._validation_step_reached_end = True + return action class PyTorchProfiler(BaseProfiler): From 9b5f90cc11288122bac21e3dd49f14c5c5b5beb4 Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Tue, 23 Mar 2021 20:38:58 +0100 Subject: [PATCH 123/126] yapf --- .../basic_examples/profiler_example.py | 16 +++++++++----- pytorch_lightning/accelerators/accelerator.py | 12 +++++++---- pytorch_lightning/profiler/pytorch.py | 21 ++++++++++++++++--- tests/accelerators/test_cpu.py | 8 +++---- tests/helpers/test_datasets.py | 12 ++++++----- tests/utilities/test_argparse.py | 1 + 6 files changed, 48 insertions(+), 22 deletions(-) diff --git a/pl_examples/basic_examples/profiler_example.py b/pl_examples/basic_examples/profiler_example.py index 4fb73b918976e..ca640a96f9588 100644 --- a/pl_examples/basic_examples/profiler_example.py +++ b/pl_examples/basic_examples/profiler_example.py @@ -34,13 +34,19 @@ from pytorch_lightning import LightningDataModule, LightningModule, Trainer DEFAULT_CMD_LINE = ( - "--max_epochs", "1", - "--limit_train_batches", "15", - "--limit_val_batches", "15", - "--profiler", "pytorch", - "--gpus", f"{int(torch.cuda.is_available())}", + "--max_epochs", + "1", + "--limit_train_batches", + "15", + "--limit_val_batches", + "15", + "--profiler", + "pytorch", + "--gpus", + f"{int(torch.cuda.is_available())}", ) + class ModelToProfile(LightningModule): def __init__(self, model): diff --git a/pytorch_lightning/accelerators/accelerator.py b/pytorch_lightning/accelerators/accelerator.py index 4aa5fedf2b210..1dcd541ca0610 100644 --- a/pytorch_lightning/accelerators/accelerator.py +++ b/pytorch_lightning/accelerators/accelerator.py @@ -448,8 +448,10 @@ def connect_training_type_plugin(self, plugin: TrainingTypePlugin, model: Lightn .. deprecated::v1.3 Will be removed in v1.5.0. """ - rank_zero_warn('Accelerator method `connect_training_type_plugin` was deprecated in v1.3.' - ' It will be removed in v1.5.') + rank_zero_warn( + 'Accelerator method `connect_training_type_plugin` was deprecated in v1.3.' + ' It will be removed in v1.5.' + ) self.setup_training_type_plugin(plugin, model) # todo: remove in v1.5 @@ -459,6 +461,8 @@ def connect_precision_plugin(self, plugin: PrecisionPlugin) -> None: .. deprecated::v1.3 Will be removed in v1.5.0. """ - rank_zero_warn('Accelerator method `connect_precision_plugin` was deprecated in v1.3.' - ' It will be removed in v1.5.') + rank_zero_warn( + 'Accelerator method `connect_precision_plugin` was deprecated in v1.3.' + ' It will be removed in v1.5.' + ) self.setup_precision_plugin(plugin) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index 11c34b3f5cd4f..c96666e822dc1 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -175,9 +175,19 @@ def __call__(self, num_step: int) -> 'ProfilerAction': class PyTorchProfiler(BaseProfiler): RECORD_FUNCTIONS = { - "training_step_and_backward", "training_step", "backward", "validation_step", "test_step", "predict_step" + "training_step_and_backward", + "training_step", + "backward", + "validation_step", + "test_step", + "predict_step", + } + STEP_FUNCTIONS = { + "training_step_and_backward", + "validation_step", + "test_step", + "predict_step", } - STEP_FUNCTIONS = {"training_step_and_backward", "validation_step", "test_step", "predict_step"} AVAILABLE_SORT_KEYS = { "cpu_time", "cuda_time", @@ -189,7 +199,12 @@ class PyTorchProfiler(BaseProfiler): "self_cuda_memory_usage", "count", } - START_RECORD_FUNCTIONS = {'on_train_start', 'on_validation_start', 'on_test_start', 'on_predict_start'} + START_RECORD_FUNCTIONS = { + 'on_train_start', + 'on_validation_start', + 'on_test_start', + 'on_predict_start', + } def __init__( self, diff --git a/tests/accelerators/test_cpu.py b/tests/accelerators/test_cpu.py index bcb351984a175..46379a9d10c14 100644 --- a/tests/accelerators/test_cpu.py +++ b/tests/accelerators/test_cpu.py @@ -30,6 +30,7 @@ def test_plugin_setup_optimizers_in_pre_dispatch(tmpdir, delay_dispatch): """ class TestModel(BoringModel): + def on_fit_start(self): if delay_dispatch: # Ensure we haven't setup optimizers if we've delayed dispatch @@ -41,14 +42,11 @@ def on_fit_end(self): assert len(self.trainer.optimizers) > 0 class CustomPlugin(SingleDevicePlugin): + @property def setup_optimizers_in_pre_dispatch(self) -> bool: return delay_dispatch model = TestModel() - trainer = Trainer( - default_root_dir=tmpdir, - fast_dev_run=True, - plugins=CustomPlugin(device=torch.device("cpu")) - ) + trainer = Trainer(default_root_dir=tmpdir, fast_dev_run=True, plugins=CustomPlugin(device=torch.device("cpu"))) trainer.fit(model) diff --git a/tests/helpers/test_datasets.py b/tests/helpers/test_datasets.py index 42b5df0ff91a4..8c866bdbab789 100644 --- a/tests/helpers/test_datasets.py +++ b/tests/helpers/test_datasets.py @@ -20,11 +20,13 @@ from tests.helpers.datasets import AverageDataset, MNIST, TrialMNIST -@pytest.mark.parametrize('dataset_cls,args', [ - (MNIST, dict(root=PATH_DATASETS)), - (TrialMNIST, dict(root=PATH_DATASETS)), - (AverageDataset, dict()), -]) +@pytest.mark.parametrize( + 'dataset_cls,args', [ + (MNIST, dict(root=PATH_DATASETS)), + (TrialMNIST, dict(root=PATH_DATASETS)), + (AverageDataset, dict()), + ] +) def test_pickling_dataset_mnist(tmpdir, dataset_cls, args): mnist = dataset_cls(**args) diff --git a/tests/utilities/test_argparse.py b/tests/utilities/test_argparse.py index aef266d639b4a..f13af4362364c 100644 --- a/tests/utilities/test_argparse.py +++ b/tests/utilities/test_argparse.py @@ -18,6 +18,7 @@ class ArgparseExample: + def __init__(self, a: int = 0, b: str = '', c: bool = False): self.a = a self.b = b From 92eaf7d3450593e56ef99071246b5c85ee320b4c Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Tue, 23 Mar 2021 20:47:28 +0100 Subject: [PATCH 124/126] move pm --- pytorch_lightning/profiler/pytorch.py | 48 ++++++++++++++------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index c96666e822dc1..dbd906814c3ef 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -294,35 +294,37 @@ def __init__( self._schedule: Optional[ScheduleWrapper] = None if _KINETO_AVAILABLE: - has_schedule = "schedule" in profiler_kwargs - self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs - - schedule = profiler_kwargs.get("schedule", None) - if schedule is not None: - if not isinstance(schedule, Callable): - raise MisconfigurationException(f"Schedule should be a callable. Found: {schedule}") - action = schedule(0) - if not isinstance(action, ProfilerAction): - raise MisconfigurationException( - f"Schedule should return a `torch.profiler.ProfilerAction`. Found: {action}" - ) - schedule = schedule if has_schedule else self._default_schedule() - self._schedule = ScheduleWrapper(schedule) if schedule is not None else schedule - self._profiler_kwargs["schedule"] = self._schedule - - activities = profiler_kwargs.get("activities", None) - self._profiler_kwargs["activities"] = activities or self._default_activities() - self._export_to_flame_graph = profiler_kwargs.get("export_to_flame_graph", False) - self._metric = profiler_kwargs.get("metric", "self_cpu_time_total") - self._profiler_kwargs["with_stack"] = profiler_kwargs.get( - "with_stack", False - ) or self._export_to_flame_graph + self.__init_kento(profiler_kwargs) if self._sort_by_key not in self.AVAILABLE_SORT_KEYS: raise MisconfigurationException( f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) + def __init_kento(self, profiler_kwargs: Any): + has_schedule = "schedule" in profiler_kwargs + self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs + + schedule = profiler_kwargs.get("schedule", None) + if schedule is not None: + if not isinstance(schedule, Callable): + raise MisconfigurationException(f"Schedule should be a callable. Found: {schedule}") + action = schedule(0) + if not isinstance(action, ProfilerAction): + raise MisconfigurationException( + f"Schedule should return a `torch.profiler.ProfilerAction`. Found: {action}" + ) + schedule = schedule if has_schedule else self._default_schedule() + self._schedule = ScheduleWrapper(schedule) if schedule is not None else schedule + self._profiler_kwargs["schedule"] = self._schedule + + activities = profiler_kwargs.get("activities", None) + self._profiler_kwargs["activities"] = activities or self._default_activities() + self._export_to_flame_graph = profiler_kwargs.get("export_to_flame_graph", False) + self._metric = profiler_kwargs.get("metric", "self_cpu_time_total") + with_stack = profiler_kwargs.get("with_stack", False) or self._export_to_flame_graph + self._profiler_kwargs["with_stack"] = with_stack + def __deprecation_check( self, profiled_functions: Optional[List[str]], From 8a631e00d35cf2db420e559bcabd33b7d1eaac66 Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Tue, 23 Mar 2021 20:52:06 +0100 Subject: [PATCH 125/126] typo --- pytorch_lightning/profiler/pytorch.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index dbd906814c3ef..0ff9f64ea5754 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -294,14 +294,14 @@ def __init__( self._schedule: Optional[ScheduleWrapper] = None if _KINETO_AVAILABLE: - self.__init_kento(profiler_kwargs) + self.__init_kineto(profiler_kwargs) if self._sort_by_key not in self.AVAILABLE_SORT_KEYS: raise MisconfigurationException( f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - def __init_kento(self, profiler_kwargs: Any): + def __init_kineto(self, profiler_kwargs: Any): has_schedule = "schedule" in profiler_kwargs self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs From 8f958141320861c7da1fb387be80a91a7736f369 Mon Sep 17 00:00:00 2001 From: tchaton Date: Tue, 23 Mar 2021 19:56:42 +0000 Subject: [PATCH 126/126] update --- pytorch_lightning/profiler/pytorch.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pytorch_lightning/profiler/pytorch.py b/pytorch_lightning/profiler/pytorch.py index dbd906814c3ef..73abc1baf939d 100644 --- a/pytorch_lightning/profiler/pytorch.py +++ b/pytorch_lightning/profiler/pytorch.py @@ -113,6 +113,8 @@ def __init__(self, schedule: Callable) -> None: self._num_predict_step = 0 self._training_step_and_backward_reached_end = False self._validation_step_reached_end = False + self._test_step_reached_end = False + self._predict_step_reached_end = False # used to stop profiler when `ProfilerAction.RECORD_AND_SAVE` is reached. self._current_action: Optional[str] = None self._start_action_name: Optional[str] = None @@ -155,6 +157,10 @@ def has_finished(self) -> bool: return self._training_step_and_backward_reached_end elif self._current_action == "validation_step": return self._validation_step_reached_end + elif self._current_action == "test_step": + return self._test_step_reached_end + elif self._current_action == "predict_step": + return self._predict_step_reached_end return False def __call__(self, num_step: int) -> 'ProfilerAction': @@ -169,6 +175,10 @@ def __call__(self, num_step: int) -> 'ProfilerAction': self._training_step_and_backward_reached_end = True elif self._current_action == "validation_step": self._validation_step_reached_end = True + elif self._current_action == "test_step": + self._test_step_reached_end = True + elif self._current_action == "predict_step": + self._predict_step_reached_end = True return action @@ -294,14 +304,14 @@ def __init__( self._schedule: Optional[ScheduleWrapper] = None if _KINETO_AVAILABLE: - self.__init_kento(profiler_kwargs) + self.__init_kineto__(profiler_kwargs) if self._sort_by_key not in self.AVAILABLE_SORT_KEYS: raise MisconfigurationException( f"Found sort_by_key: {self._sort_by_key}. Should be within {self.AVAILABLE_SORT_KEYS}. " ) - def __init_kento(self, profiler_kwargs: Any): + def __init_kineto__(self, profiler_kwargs: Any): has_schedule = "schedule" in profiler_kwargs self._has_on_trace_ready = "on_trace_ready" in profiler_kwargs