in python/dlr/dlr_model.py [0:0]
def __init__(self, model_path, dev_type='cpu', dev_id=0, error_log_file=None, use_default_dlr=False):
self.logger = create_logger(log_file=error_log_file)
if not os.path.exists(model_path):
raise ValueError("model_path %s doesn't exist" % model_path)
for file_name in os.listdir(model_path):
if file_name.endswith(".tensorrt"):
raise Exception("This model requires DLR release-1.1.0 to run.")
self.handle = c_void_p()
device_table = {
'cpu': 1,
'gpu': 2,
'opencl': 4,
}
self.model_path = model_path
self.use_default_dlr = use_default_dlr
self._lib = None
self._init_libdlr()
self._check_call(self._lib.CreateDLRModel(byref(self.handle),
c_char_p(model_path.encode()),
c_int(device_table[dev_type]),
c_int(dev_id)))
self.backend = self._parse_backend()
self.version = self._get_version()
self.num_inputs = self._get_num_inputs()
self.num_weights = self._get_num_weights()
self.input_names = []
self.input_name_to_index = {}
self.output_names = []
self.weight_names = []
self.input_shapes = {} # Remember shape used in _set_input()
self.input_dtypes = []
self.output_dtypes = []
for i in range(self.num_weights):
self.weight_names.append(self._get_weight_name(i))
self.num_outputs = self._get_num_outputs()
if self.backend != "relayvm":
self._lazy_init_output_shape()
self._fetch_input_names()
self._fetch_input_dtypes()
self._fetch_output_dtypes()