-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinference.py
39 lines (30 loc) · 1.34 KB
/
inference.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
# https://stackoverflow.com/questions/7370801/how-to-measure-elapsed-time-in-python
from timeit import default_timer as timer
class PythonInference:
def __init__(self, model):
self.model = model
def check_inference_time(self, tokenized_input: dict):
t = timer()
output = self.model(**tokenized_input)
elapsed_time = timer()-t
return elapsed_time
def check_inference_time_all(self, tokenized_inputs: list, num_experiments=1):
time_measurements = []
for i in range(num_experiments):
time_measurements.append([self.check_inference_time(x) for x in tokenized_inputs])
return np.array(time_measurements)
class OnxxInference:
def __init__(self, session):
self.session = session
def check_inference_time(self, tokenized_input):
t = timer()
output = self.session.run(None, tokenized_input)
elapsed_time = timer()-t
return elapsed_time
def check_inference_time_all(self, tokenized_inputs: list, num_experiments=1):
time_measurements = []
for i in range(num_experiments):
time_measurements.append(
[self.check_inference_time({name: np.atleast_2d(value) for name, value in x.items()}) for x in tokenized_inputs])
return np.array(time_measurements)