June 20, 2025
Day 19- Optimizing ECG Model Training Through Data Validation and System Debugging
What I Learned
Today at my internship, I made steady progress on our ECG diagnostic AI project, focusing primarily on model development and debugging. The morning began with a review of the datasets we had prepared earlier in the week. I carefully verified that the preprocessed input files were correctly aligned with their diagnostic labels and ensured that the time-series and spectrogram data matched the expected format for model training.Once the data integrity checks were complete, I turned my attention to building and refining one of our convolutional neural network architectures. This included adjusting the layers to better fit the dimensionality of our ECG signals and experimenting with different activation functions and optimizers to improve performance. I also added validation callbacks to monitor the model’s accuracy and loss during training, which will help us detect overfitting and guide future adjustments. Later in the day, I encountered a few runtime issues while loading large batches of .npy files from Google Drive, which caused delays and resource strain. To resolve this, I explored more efficient loading strategies, including batching and caching, and documented the changes for the team to review. These optimizations will significantly speed up training cycles in future experiments.
Blockers
No Blockers
Reflection
Today’s work at my internship was a reminder of how much patience and precision AI development truly requires. I spent most of the day working on our ECG diagnostic model — not just building the architecture, but making sure the foundation we’re training it on is solid. That started with checking the integrity of our datasets. I went through the time-series and spectrogram data to make sure everything matched the expected structure and was correctly aligned with the diagnostic labels. It wasn’t glamorous work, but it was necessary. Without this step, even the best model wouldn’t perform well. Once I confirmed the data looked good, I shifted to refining our CNN architecture. This part was more creative. I adjusted the layers, tweaked the activation functions, and experimented with optimizers to see what combination would give us the best results. I also added validation callbacks so we could track how well the model performs during training — not just on training data but on unseen samples, which is where it really counts. The biggest challenge came when I tried loading large batches of .npy files from Google Drive. It slowed everything down and even caused a few crashes. That forced me to dig into batching strategies and caching solutions to reduce the strain. It wasn’t a quick fix, but I’m glad I tackled it — the system runs more efficiently now, and I’ve documented the improvements so we can keep building on them.