cleanup add training bell
This commit is contained in:
46
backend/services/training_queue.py
Normal file → Executable file
46
backend/services/training_queue.py
Normal file → Executable file
@@ -112,16 +112,35 @@ class TrainingQueueManager:
|
||||
if line:
|
||||
print(line.strip())
|
||||
|
||||
# Parse iteration from YOLOX output
|
||||
# Example: "2025-12-02 07:30:15 | INFO | yolox.core.trainer:78 - Epoch: [5/300]"
|
||||
match = re.search(r'Epoch:\s*\[(\d+)/(\d+)\]', line)
|
||||
if match:
|
||||
current_epoch = int(match.group(1))
|
||||
total_epochs = int(match.group(2))
|
||||
# Parse epoch and iteration from YOLOX output
|
||||
# Example: "epoch: 3/300, iter: 90/101"
|
||||
epoch_match = re.search(r'epoch:\s*(\d+)/(\d+)', line, re.IGNORECASE)
|
||||
iter_match = re.search(r'iter:\s*(\d+)/(\d+)', line, re.IGNORECASE)
|
||||
|
||||
if epoch_match:
|
||||
current_epoch = int(epoch_match.group(1))
|
||||
total_epochs = int(epoch_match.group(2))
|
||||
if self.current_training:
|
||||
self.current_training['iteration'] = current_epoch
|
||||
self.current_training['current_epoch'] = current_epoch
|
||||
self.current_training['max_epoch'] = total_epochs
|
||||
print(f'Progress: {current_epoch}/{total_epochs}')
|
||||
# Debug log
|
||||
print(f'[PROGRESS] Parsed epoch: {current_epoch}/{total_epochs}')
|
||||
|
||||
if iter_match:
|
||||
current_iter = int(iter_match.group(1))
|
||||
total_iters = int(iter_match.group(2))
|
||||
if self.current_training:
|
||||
self.current_training['current_iter'] = current_iter
|
||||
self.current_training['total_iters'] = total_iters
|
||||
|
||||
# Calculate overall progress percentage
|
||||
if 'current_epoch' in self.current_training and 'max_epoch' in self.current_training:
|
||||
epoch_progress = (self.current_training['current_epoch'] - 1) / self.current_training['max_epoch']
|
||||
iter_progress = current_iter / total_iters / self.current_training['max_epoch']
|
||||
total_progress = (epoch_progress + iter_progress) * 100
|
||||
self.current_training['progress'] = round(total_progress, 2)
|
||||
# Debug log
|
||||
print(f'[PROGRESS] Epoch {self.current_training["current_epoch"]}/{self.current_training["max_epoch"]}, Iter {current_iter}/{total_iters}, Progress: {self.current_training["progress"]}%')
|
||||
|
||||
# Wait for completion
|
||||
self.current_process.wait()
|
||||
@@ -158,11 +177,18 @@ class TrainingQueueManager:
|
||||
}
|
||||
|
||||
if self.current_training:
|
||||
current_epoch = self.current_training.get('current_epoch', 0)
|
||||
max_epoch = self.current_training.get('max_epoch', 300)
|
||||
result['current'] = {
|
||||
'training_id': self.current_training['training_id'],
|
||||
'name': self.current_training.get('name', f'Training {self.current_training["training_id"]}'),
|
||||
'iteration': self.current_training.get('iteration', 0),
|
||||
'max_epoch': self.current_training.get('max_epoch', 300)
|
||||
'epoch': current_epoch, # For backward compatibility
|
||||
'current_epoch': current_epoch,
|
||||
'max_epoch': max_epoch,
|
||||
'current_iter': self.current_training.get('current_iter', 0),
|
||||
'total_iters': self.current_training.get('total_iters', 0),
|
||||
'progress': self.current_training.get('progress', 0.0),
|
||||
'iteration': current_epoch # For backward compatibility
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user