class_docstr: Benchmarks runtime and error of crypten functions against PyTorch
  
  Args:
      tensor_size (int or tuple): size of tensor for benchmarking runtimes
class_docstr_tok: ["Benchmarks","runtime","and","error","of","crypten","functions","against","PyTorch","Args",":","tensor_size","(","int","or","tuple",")",":","size","of","tensor","for","benchmarking","runtimes"]
docstr: Runs and stores benchmarks in self.df
docstr_tok: ["Runs","and","stores","benchmarks","in","self.df"]
code: def run(self):
      """Runs and stores benchmarks in self.df"""
      runtimes, runtimes_enc = self.get_runtimes()
  
      abs_errors, relative_errors = self.get_errors()
  
      self.df = pd.DataFrame.from_dict(
          {
              "function": FuncBenchmarks.UNARY
              + FuncBenchmarks.BINARY
              + FuncBenchmarks.LAYERS,
              "runtime": [r.mid for r in runtimes],
              "runtime Q1": [r.q1 for r in runtimes],
              "runtime Q3": [r.q3 for r in runtimes],
              "runtime crypten": [r.mid for r in runtimes_enc],
              "runtime crypten Q1": [r.q1 for r in runtimes_enc],
              "runtime crypten Q3": [r.q3 for r in runtimes_enc],
              "total abs error": abs_errors,
              "average relative error": relative_errors,
          }
      )
  
imports: import argparse
  import functools
  import os
  import timeit
  from collections import namedtuple
  import crypten
  import crypten.communicator
  import numpy
  import pandas
  import torch
  from examples import multiprocess_launcher
label_desc: Use image node_id 15 for calling the FuncBenchmarks obj's underlying member method code with example usage: obj.run() without return types