[性能] 实现批量处理优化,推理速度提升 50-100%
作者: suntp创建于 2026年3月5日更新于 2026年3月5日
def process_batch(self, frames, batch_size=8): """Process frames in batches""" results = [] for i in range(0, len(frames), batch_size): batch = frames[i:i+batch_size]
# Extract features in batches
batch_tensor = torch.stack([
self.prepare_source(frame) for frame in batch
])
with torch.no_grad():
# Batch inference
kp_info_batch = self.get_kp_info_batch(batch_tensor)
features_batch = self.extract_feature_3d_batch(batch_tensor)
# Process results
for j in range(len(batch)):
result = self.process_single_result(
kp_info_batch[j],
features_batch[j]
)
results.append(result)
return resultsdef get_kp_info_batch(self, batch_tensor): """Extract keypoint information in batches""" with torch.no_grad(): kp_info = self.motion_extractor(batch_tensor) return kp_info
Use DataLoader
dataset = VideoDataset(frames) dataloader = DataLoader( dataset, batch_size=8, …
内容来源: KlingAIResearch/LivePortrait