I Worked With A Data Scientist As A Software Engineer. Here’s My Experience.

Both of them would later be implemented using Convolutional Neural Networks (CNNs).Preparing the training data isn’t easyPhoto by Jonny Caspari on UnsplashBoth tasks required a lot of training data. The good news was that we had a lot of data. The bad news was that they were unsorted/not annotated. I finally understood what ML experts said about spending the most time preparing the training data rather than training the model itself.For the classification task we needed to arrange hundreds of thousands of images into different classes. This was tedious job. I had to invoke my Java Swing skills to build GUIs that made this task easier, but in all, the task was monotonous for everyone involved in the manual classification.The segmentation process was a bit more complicated. We were lucky enough to find some models that were good at segmentation already but unfortunately they were too large. We also wanted the model to be able run on Android devices that had very low specs. In a moment of brilliance, the data scientist suggested that we use the huge model to generate the training data that would be used to build our own mobilenet.TrainingWe eventually switched to AWS Deep Learning AMI. We were already comfortable with AWS and it was a plus that they offered such a service. The process of training the model for the image segmentation was fully handled by our data scientist, and I stood beside him, taking notes :).Those are not the actual logs, LOL.Training this model was a computationally intensive task..This was when I saw the importance of training on a computer with sufficient GPU(s) and RAM..The time it took to train was reasonably short because we used such computers for our training..It would have taken weeks, if not months, had we used a basic computer.I handled the training of the image classification model..We didn’t need to train it on the cloud, and in fact, I trained it on my Macbook pro..This was because I was only training the final layer of the neural network compared to the full network training that we did for the segmentation model.We made it to prodBoth models made it to our production environment after rigorous tests ????..A team member was tasked with building the Java wrapper libraries..This was done so that the models could be used in a way that abstracts all the complexity involved in feeding the model with the images and extracting meaningful results from the tensor of probabilities..This is the array that contains the result of the prediction the model made on a single image..I was also involved a little at this point too as some of the hacky code I had written earlier was cleaned up and reused here.Challenges, challenges everywhereChallenges are what make life interesting..Overcoming them is what makes them meaningful. — AnonymousI can remember when my biggest challenge was working with a 3-dimensional arrays..I still approach them with caution.. More details

Leave a Reply