Gaze-LIPE / src /utils /live_monitor.py
thanhhuyvan's picture
Initial release of LIPE V2 GOLD
a10ba7f
Raw
History Blame Contribute Delete
2.35 kB
import os
import glob
import re
def monitor_live():
# 1. Tìm file log mới nhất trong thư mục temp
temp_dir = r'C:\Users\A\.gemini\tmp\gaze-estimation'
log_files = glob.glob(os.path.join(temp_dir, 'background_*.log'))
if not log_files:
print("Không tìm thấy file log nào đang chạy.")
return
latest_log = max(log_files, key=os.path.getmtime)
print(f"Đang đọc log: {os.path.basename(latest_log)}")
print("-" * 50)
current_participant = "Unknown"
best_mae = "N/A"
best_epoch = "N/A"
current_epoch = "0"
with open(latest_log, 'r', encoding='utf-8', errors='ignore') as f:
lines = f.readlines()
for line in lines:
# Tìm participant hiện tại
if "Starting Training for Participant:" in line:
current_participant = line.split("Participant:")[1].strip()
# Tìm epoch hiện tại
if "Epoch " in line and ":" in line:
match = re.search(r'Epoch (\d+):', line)
if match:
current_epoch = match.group(1)
# Tìm kết quả tốt nhất đã lưu
if "New best model saved at epoch" in line:
# Format: New best model saved at epoch 41! (MAE: 4.5678)
try:
parts = line.split("epoch ")[1].split("!")
best_epoch = parts[0].strip()
best_mae = parts[1].split("MAE: ")[1].replace(")", "").strip()
except:
pass
print(f"Subject đang chạy: {current_participant}")
print(f"Epoch hiện tại: {current_epoch}")
print(f"--- KẾT QUẢ TỐT NHẤT TẠM THỜI ---")
print(f"MAE thấp nhất: {best_mae} (độ)")
print(f"Tại Epoch: {best_epoch}")
print("-" * 50)
# Tính toán mức độ cải thiện nếu có MAE
if best_mae != "N/A":
# Giả sử baseline cũ của p00 là 4.8003
baseline = 4.8003
improvement = baseline - float(best_mae)
if improvement > 0:
print(f"Đã cải thiện: +{improvement:.4f} độ so với Baseline")
else:
print(f"Trạng thái: Đang hội tụ...")
if __name__ == "__main__":
monitor_live()