Documentation
            ModuleProfiler
    Main class used to profile an arbitraty nn.Module and describe
different specifications of it such as tracing input and output shapes,
counting model parameters or estimating the number of operations the model
peforms:
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
input_size_attr | 
            
                  str
             | 
            
               Hidden attribute in the module under measurement used to store its input size.  | 
            
                  '__input_size__'
             | 
          
output_size_attr | 
            
                  str
             | 
            
               Hidden attribute in the module under measurement used to store its output size.  | 
            
                  '__output_size__'
             | 
          
ops_attr | 
            
                  str
             | 
            
               Hidden attribute in the module under measurement used to store the number of operations it performs.  | 
            
                  '__ops__'
             | 
          
inference_start_attr | 
            
                  str
             | 
            
               Hidden attribute used to store inference start times while timing a model.  | 
            
                  '__inference_start__'
             | 
          
inference_end_attr | 
            
                  str
             | 
            
               Hidden attribute used to store inference end times while timing a model.  | 
            
                  '__inference_end__'
             | 
          
io_size_fn_map | 
            
                  dict
             | 
            
               Dictionary containing a map between modules and   | 
            
                  get_default_io_size_map()
             | 
          
ops_fn_map | 
            
                  dict
             | 
            
               Dictionary containing a map between modules and their corresponding function to estimate the number of operations.  | 
            
                  get_default_ops_map()
             | 
          
exclude_from_ops | 
            
                  Optional[List[Module]]
             | 
            
               Modules to exclude from ops estimations.  | 
            
                  None
             | 
          
ts_fmt | 
            
                  str
             | 
            
               Timestamp format used to print messages if
  | 
            
                  '%Y-%m-%d %H:%M:%S'
             | 
          
verbose | 
            
                  bool
             | 
            
               If   | 
            
                  False
             | 
          
            count_params(module, param_size=True, param_dtype=True, percent=True)
    Counts the number of parameters in a model.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
module | 
            
                  Module
             | 
            
               Model whose parameters will be counted.  | 
            required | 
param_size | 
            
                  bool
             | 
            
               If   | 
            
                  True
             | 
          
param_dtype | 
            
                  bool
             | 
            
               If   | 
            
                  True
             | 
          
percent | 
            
                  bool
             | 
            
               If   | 
            
                  True
             | 
          
Returns:
| Type | Description | 
|---|---|
                  dict
             | 
            
               Analysis results containing the measured module names and each corresponding parameter count.  | 
          
            count_params_csv(file, *args, **kwargs)
    Same as count_params but saves a .csv file instead.
            count_params_df(*args, **kwargs)
    Same as count_params but returns a DataFrame instead.
            count_params_html(file, *args, **kwargs)
    Same as count_params but saves a .html file instead.
            count_params_latex(*args, index=False, **kwargs)
    Same as count_params but returns a LaTeX output instead.
            estimate_inference_time(module, input, eval=True, num_iters=1000, drop_first=100)
    Estimates the time spent on each module during the forward pass of
a model. The final results are statistical aggregation of num_iters
dropping the first drop_first iterations to avoid outliers caused
by warmup routines.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
module | 
            
                  Module
             | 
            
               Input module.  | 
            required | 
input | 
            
                  (Union[Tensor], Tuple[Tensor])
             | 
            
               Model input.  | 
            required | 
eval | 
            
                  bool
             | 
            
               If   | 
            
                  True
             | 
          
num_iters | 
            
                  int
             | 
            
               Number of iterations to be performed.  | 
            
                  1000
             | 
          
drop_first | 
            
                  int
             | 
            
               Inferences to be dropped before aggregating the results.  | 
            
                  100
             | 
          
Returns:
| Type | Description | 
|---|---|
                  dict
             | 
            
               Measurement results.  | 
          
            estimate_inference_time_csv(file, *args, **kwargs)
    Same as estimate_inference_time but saves a .csv file
instead.
            estimate_inference_time_df(*args, aggr=True, **kwargs)
    Same as estimate_inference_time but returns a DataFrame
instead. Additional argument aggr can be set to True if only
aggregations should be kept.
            estimate_inference_time_html(file, *args, **kwargs)
    Same as estimate_inference_time but saves a .html file
instead.
            estimate_inference_time_latex(*args, index=False, **kwargs)
    Same as estimate_inference_time but return a LaTeX output
instead.
            estimate_ops(module, input, pred_fn=None, eval=True)
    Estimates the number of operations computed in a forward pass of a module.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
module | 
            
                  Module
             | 
            
               Input module.  | 
            required | 
input | 
            
                  Union[Tensor, Tuple[Tensor]]
             | 
            
               Model input.  | 
            required | 
pred_fn | 
            
                  Optional[Callable]
             | 
            
               Optional prediction function that replaces the forward call if the module requires additional steps.  | 
            
                  None
             | 
          
eval | 
            
                  bool
             | 
            
               If   | 
            
                  True
             | 
          
Returns:
| Type | Description | 
|---|---|
                  dict
             | 
            
               Results containing the estimated operations per module.  | 
          
            estimate_ops_csv(file, *args, **kwargs)
    Same as estimate_ops but saves a .csv file instead.
            estimate_ops_df(*args, **kwargs)
    Same as estimate_ops but returns a DataFrame instead.
            estimate_ops_html(file, *args, **kwargs)
    Same as estimate_ops but saves a .html file instead.
            estimate_ops_latex(*args, index=False, **kwargs)
    Same as estimate_ops but returns a LaTeX output instead.
            estimate_total_inference_time(module, input, eval=True, num_iters=1000, drop_first=100)
    Estimates the total inference time taken by the model to run an inference.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
module | 
            
                  Module
             | 
            
               Input module.  | 
            required | 
input | 
            
                  Union[Tensor, Tuple[Tensor]]
             | 
            
               Model input.  | 
            required | 
eval | 
            
                  bool
             | 
            
               If   | 
            
                  True
             | 
          
num_iters | 
            
                  int
             | 
            
               Number of iterations to be performed.  | 
            
                  1000
             | 
          
drop_first | 
            
                  int
             | 
            
               Inferences to be dropped before aggregating the results.  | 
            
                  100
             | 
          
Returns:
| Type | Description | 
|---|---|
                  dict
             | 
            
               Measurement results.  | 
          
            estimate_total_inference_time_csv(file, *args, **kwargs)
    Same as estimate_total_inference_time but saves a .csv
file instead.
            estimate_total_inference_time_df(*args, aggr=False, **kwargs)
    Same as estimate_total_inference_time but returns a
DataFrame instead. Additional argument aggr can be set to
True if only aggregations should be kept.
            estimate_total_inference_time_html(file, *args, **kwargs)
    Same as estimate_total_inference_time but saves a .html
file instead.
            estimate_total_inference_time_latex(*args, index=False, **kwargs)
    Same as estimate_total_inference_time but returns a LaTeX
output instead.
            trace_io_sizes(module, input, pred_fn=None, eval=False)
    Traces the input and output tensor shapes of a module given a sample input.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
module | 
            
                  Module
             | 
            
               Input module.  | 
            required | 
input | 
            
                  Union[torch.Tensor, Tuple[torch.Tensor]
             | 
            
               Model input.  | 
            required | 
pred_fn | 
            
                  Optional[Callable]
             | 
            
               Optional prediction function that replaces the forward call if the module requires additional steps.  | 
            
                  None
             | 
          
eval | 
            
                  bool
             | 
            
               If   | 
            
                  False
             | 
          
Returns:
| Type | Description | 
|---|---|
                  dict
             | 
            
               Results containing input and output shapes of each module.  | 
          
            trace_io_sizes_csv(file, *args, **kwargs)
    Same as trace_io_sizes but saves a .csv file instead.
            trace_io_sizes_df(*args, **kwargs)
    Same as trace_io_sizes but returns a DataFrame instead.
            trace_io_sizes_html(file, *args, **kwargs)
    Same as trace_io_sizes but saves a .html file instead.
            trace_io_sizes_latex(*args, index=False, **kwargs)
    Same as trace_io_sizes but returns a LaTeX output instead.