juanpablomesa commited on
Commit
ab10ce8
·
1 Parent(s): dae7ab5

Added timeit loggings

Browse files
Files changed (1) hide show
  1. handler.py +23 -16
handler.py CHANGED
@@ -103,51 +103,58 @@ class EndpointHandler:
103
  def embed_frames_with_xclip_processing(self, frames):
104
  # Initialize an empty list to store the frame embeddings
105
 
106
- self.logger.info("Preprocessing frames.")
107
  frame_preprocessed = self.preprocess_frames(frames)
108
 
109
  # Pass the preprocessed frame through the model to get the frame embeddings
110
- self.logger.info("Getting video features.")
111
  frame_embedding = self.model.get_video_features(**frame_preprocessed)
112
 
113
- # Stack the list of frame embeddings into a single tensor
114
- # self.logger.info("Stacking embeddings into a single tensor.")
115
- # tensor = torch.stack(frame_embedding)
116
-
117
- # detach text emb from graph, move to CPU, and convert to numpy array
118
- # self.logger.info("Squeezing tensor")
119
- # batch_emb = frame_embedding.squeeze(0)
120
-
121
  # Check the shape of the tensor
122
- self.logger.info(f"Shape of the batch_emb tensor: {frame_embedding.shape}")
123
 
124
  # Normalize the embeddings if it's a 2D tensor
125
  if frame_embedding.dim() == 2:
126
- self.logger.info("Normalizing embeddings")
127
  batch_emb = torch.nn.functional.normalize(frame_embedding, p=2, dim=1)
128
  else:
129
- self.logger.info("Skipping normalization due to tensor shape")
130
  batch_emb = frame_embedding.squeeze(0)
131
 
132
- self.logger.info("Converting into numpy array")
133
  batch_emb = batch_emb.cpu().detach().numpy()
134
 
135
- self.logger.info("Converting to list")
136
  batch_emb = batch_emb.tolist()
137
 
138
- self.logger.info("Returning batch_emb list")
139
  return batch_emb
140
 
141
  def process_video(self, video_url, video_metadata):
142
  try:
143
  self.logger.info("Downloading video as bytes.")
 
144
  video_bytes, video_headers = self.download_video_as_bytes(video_url)
 
 
 
 
145
  self.logger.info("Extracting frames.")
 
146
  frames = self.extract_evenly_spaced_frames_from_bytes(
147
  video_bytes, num_frames=32
148
  )
 
 
 
 
149
  self.logger.info("Embedding frames with Xclip.")
 
150
  frame_embeddings = self.embed_frames_with_xclip_processing(frames)
 
 
 
 
151
  video_metadata["url"] = video_url
152
  self.logger.info("Returning embeddings and metadata.")
153
  return frame_embeddings, video_metadata
 
103
  def embed_frames_with_xclip_processing(self, frames):
104
  # Initialize an empty list to store the frame embeddings
105
 
106
+ #self.logger.info("Preprocessing frames.")
107
  frame_preprocessed = self.preprocess_frames(frames)
108
 
109
  # Pass the preprocessed frame through the model to get the frame embeddings
110
+ #self.logger.info("Getting video features.")
111
  frame_embedding = self.model.get_video_features(**frame_preprocessed)
112
 
 
 
 
 
 
 
 
 
113
  # Check the shape of the tensor
114
+ #self.logger.info(f"Shape of the batch_emb tensor: {frame_embedding.shape}")
115
 
116
  # Normalize the embeddings if it's a 2D tensor
117
  if frame_embedding.dim() == 2:
118
+ #self.logger.info("Normalizing embeddings")
119
  batch_emb = torch.nn.functional.normalize(frame_embedding, p=2, dim=1)
120
  else:
121
+ #self.logger.info("Skipping normalization due to tensor shape")
122
  batch_emb = frame_embedding.squeeze(0)
123
 
124
+ #self.logger.info("Converting into numpy array")
125
  batch_emb = batch_emb.cpu().detach().numpy()
126
 
127
+ #self.logger.info("Converting to list")
128
  batch_emb = batch_emb.tolist()
129
 
130
+ #self.logger.info("Returning batch_emb list")
131
  return batch_emb
132
 
133
  def process_video(self, video_url, video_metadata):
134
  try:
135
  self.logger.info("Downloading video as bytes.")
136
+ download_start_time = timeit.default_timer()
137
  video_bytes, video_headers = self.download_video_as_bytes(video_url)
138
+ download_end_time = timeit.default_timer()
139
+ self.logger.info(
140
+ f"Video downloading took {download_end_time - download_start_time} seconds"
141
+ )
142
  self.logger.info("Extracting frames.")
143
+ processing_start_time = timeit.default_timer()
144
  frames = self.extract_evenly_spaced_frames_from_bytes(
145
  video_bytes, num_frames=32
146
  )
147
+ processing_end_time = timeit.default_timer()
148
+ self.logger.info(
149
+ f"Extracting video frames took {processing_end_time - processing_start_time} seconds"
150
+ )
151
  self.logger.info("Embedding frames with Xclip.")
152
+ embedding_start_time = timeit.default_timer()
153
  frame_embeddings = self.embed_frames_with_xclip_processing(frames)
154
+ embedding_end_time = timeit.default_timer()
155
+ self.logger.info(
156
+ f"Embedding calculation took {embedding_end_time - embedding_start_time} seconds"
157
+ )
158
  video_metadata["url"] = video_url
159
  self.logger.info("Returning embeddings and metadata.")
160
  return frame_embeddings, video_metadata