IMG_to_VID_gen / space_optimizer.py
Boka73's picture
create space_optimizer.py
c7b2ae9 verified
"""
Optimizations for Hugging Face Free Tier
"""
import os
import torch
import gc
from functools import lru_cache
def free_memory():
"""Clear GPU and CPU memory"""
gc.collect()
if torch.cuda.is_available():
torch.cuda.empty_cache()
torch.cuda.ipc_collect()
def limit_resources():
"""Set resource limits for free tier"""
# Reduce model precision
torch.set_float32_matmul_precision('medium')
# Limit threads
torch.set_num_threads(2)
# Enable memory efficient settings
os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'max_split_size_mb:128'
# Disable gradients for inference
torch.set_grad_enabled(False)
class ResourceMonitor:
"""Monitor and log resource usage"""
def __init__(self):
self.start_memory = self.get_memory_usage()
def get_memory_usage(self):
"""Get current memory usage in MB"""
if torch.cuda.is_available():
return torch.cuda.memory_allocated() / 1024**2
return 0
def log_usage(self, stage=""):
"""Log memory usage"""
current = self.get_memory_usage()
print(f"๐Ÿ“Š Memory usage {stage}: {current:.1f}MB")
return current