Progress tracking helps you see how well your AI or machine learning model is learning over time. Reporting shows this progress clearly so you can make better decisions.
Progress tracking and reporting in Agentic AI
progress_tracker = ProgressTracker() for epoch in range(num_epochs): loss = train_one_epoch(model, data) accuracy = evaluate(model, validation_data) progress_tracker.update(epoch, loss, accuracy) progress_report = progress_tracker.report()
The ProgressTracker is a tool to collect and store progress data.
Update it regularly during training to keep track of metrics like loss and accuracy.
progress_tracker = ProgressTracker() progress_tracker.update(epoch=1, loss=0.5, accuracy=0.8) print(progress_tracker.report())
for epoch in range(5): loss = 0.5 / (epoch + 1) accuracy = 0.7 + 0.05 * epoch progress_tracker.update(epoch, loss, accuracy) print(progress_tracker.report())
This program simulates training for 5 epochs. It tracks loss and accuracy each epoch and prints a report at the end.
class ProgressTracker: def __init__(self): self.records = [] def update(self, epoch, loss, accuracy): self.records.append({'epoch': epoch, 'loss': loss, 'accuracy': accuracy}) def report(self): report_lines = ['Epoch | Loss | Accuracy'] for r in self.records: report_lines.append(f"{r['epoch']:5} | {r['loss']:.4f} | {r['accuracy']:.4f}") return '\n'.join(report_lines) def train_one_epoch(model, data): # Dummy training function return 0.5 / (train_one_epoch.counter + 1) train_one_epoch.counter = 0 def evaluate(model, data): # Dummy evaluation function return 0.7 + 0.05 * train_one_epoch.counter progress_tracker = ProgressTracker() num_epochs = 5 model = None train_data = None validation_data = None for epoch in range(1, num_epochs + 1): loss = train_one_epoch(model, train_data) accuracy = evaluate(model, validation_data) progress_tracker.update(epoch, loss, accuracy) train_one_epoch.counter += 1 print(progress_tracker.report())
Tracking progress helps catch problems early, like if loss stops going down.
Reports can be saved to files or shown in graphs for easier understanding.
Use simple tables or charts to make reports clear and useful.
Progress tracking records how your model learns over time.
Reporting shows this information clearly to help you understand and improve your model.
Regular updates and clear reports make training easier and more effective.
Practice
Solution
Step 1: Understand progress tracking
Progress tracking means keeping a record of how well the model is learning as it trains.Step 2: Identify the main goal
The goal is to see improvements over time, not to change data size or hardware.Final Answer:
To record how the model improves over time -> Option AQuick Check:
Progress tracking = record improvement [OK]
- Confusing progress tracking with data augmentation
- Thinking it changes model structure automatically
- Assuming it speeds up hardware
Solution
Step 1: Check Python print syntax
In Python, print() requires arguments separated by commas or concatenated as strings.Step 2: Validate each option
print('Loss:', loss) uses print with a comma, which is correct. log('Loss:' + loss) uses undefined log function. print('Loss:' loss) misses a comma. echo 'Loss:' loss uses echo, which is not Python.Final Answer:
print('Loss:', loss) -> Option AQuick Check:
Correct print syntax = print('Loss:', loss) [OK]
- Missing commas in print statements
- Using non-Python functions like echo or log
- Concatenating strings without conversion
losses = []
for epoch in range(3):
loss = 1 / (epoch + 1)
losses.append(loss)
print(f'Epoch {epoch+1}, Loss: {loss:.2f}')
print('Final losses:', losses)Solution
Step 1: Calculate loss values for each epoch
Epoch 1: 1/(1) = 1.0, Epoch 2: 1/(2) = 0.5, Epoch 3: 1/(3) ≈ 0.3333Step 2: Check printed output and final list
Print shows formatted loss with 2 decimals. Final losses list stores full float values.Final Answer:
Epoch 1, Loss: 1.00 Epoch 2, Loss: 0.50 Epoch 3, Loss: 0.33 Final losses: [1.0, 0.5, 0.3333333333333333] -> Option CQuick Check:
Loss calculation and print formatting = Epoch 1, Loss: 1.00 Epoch 2, Loss: 0.50 Epoch 3, Loss: 0.33 Final losses: [1.0, 0.5, 0.3333333333333333] [OK]
- Confusing integer division with float division
- Rounding losses in the list incorrectly
- Misreading the range function output
accuracies = []
for epoch in range(5):
accuracy = 0.8 + epoch * 0.03
accuracies.append(accuracy)
print('Accuracies:', accuracies)Solution
Step 1: Review the code syntax and logic
The for loop has a colon, accuracy is calculated as a float, and appended to the list.Step 2: Check for runtime errors
No invalid operations or out-of-range accesses occur.Final Answer:
No error; code runs correctly -> Option BQuick Check:
Code syntax and logic correct = No error; code runs correctly [OK]
- Assuming missing colon when it is present
- Confusing variable types
- Expecting index errors without list access
Solution
Step 1: Understand the need for clear reporting
Clear reports require organized data storage and formatted output.Step 2: Evaluate each option
Store losses and accuracies in separate lists and print them after training stores separately but may be harder to align epochs. Print loss and accuracy inside the training loop without storing values prints without storing, losing history. Use a dictionary to store epoch as key and a tuple of (loss, accuracy) as value, then print a formatted table after training uses a dictionary to link epochs with both metrics, enabling clear table printing. Only track loss since accuracy is less important ignores accuracy, which is important.Final Answer:
Use a dictionary to store epoch as key and a tuple of (loss, accuracy) as value, then print a formatted table after training -> Option DQuick Check:
Organized storage + formatted report = Use a dictionary to store epoch as key and a tuple of (loss, accuracy) as value, then print a formatted table after training [OK]
- Not storing metrics together per epoch
- Printing inside loop without history
- Ignoring accuracy tracking
Ready to prove it?
Pass the test and this pattern moves unknown
