code: def __init__(self, model, time_layers=True):
      self.model = model
      self.layer_times = OrderedDict()
      if not time_layers:
          return
  
      self.time_layers = time_layers
      self.start = self.model.be.init_mark()
      self.end = self.model.be.init_mark()
      LayerContainer.flatten_layers = flatten_layers
      for idx, layer in enumerate(self.model.layers.flatten_layers):
          l_name = layer.name
  
          f_l_name = "fprop " + l_name
          b_l_name = "bprop " + l_name
          self.layer_times[f_l_name] = []
          self.layer_times[b_l_name] = []
          layer.fprop = Benchmark.benchmarked(
              layer.fprop,
              self.start,
              self.end,
              self.layer_times[f_l_name],
          )
          layer.bprop = Benchmark.benchmarked(
              layer.bprop,
              self.start,
              self.end,
              self.layer_times[b_l_name],
          )
  
file_path: neon/neon/benchmark/benchmark.py
imports: from functools import wraps
  from neon import NervanaObject
  from collections import OrderedDict
  from neon import __version__
  from neon import logger
  from neon.layers.container import LayerContainer
  import numpy
label_desc: Use image node_id 1 to create a new Benchmark object from inherited base classes: object with example: obj = Benchmark(model, time_layers)