I always had a lot of questions and concerns about how Scala/Java/Maven dependencies with the provided scope work. The best way to understand something is to actually play with it, so I decided to create a Scala playground project and play with different combinations of dependencies.

Project Structure

Image for post
Image for post

The repository contains three Scala projects with extremely sophisticated names: project-a, project-b, project-c. The idea is to keep these projects as simple as possible and limit number of dependencies.

project-b depends on the same artifact but of version 1.10.1:

Both project-a and project-b declare the…


Image for post
Image for post
Preview of images from Stanford Dogs Dataset

Problem

Several days ago I noticed Dog Breed Identification challenge hosted by Kaggle. The goal is to build a model capable of doing breed classification of a dog by just “looking” into its image. I started thinking about possible approaches to build a model for doing this and what accuracy it might be able to achieve. It appears that with modern machine learning frameworks like TensorFlow and publicly available datasets and pre-trained models for image recognition the task could be solved with a pretty good accuracy without applying too many efforts and spending too much time and resources. …


Image for post
Image for post

I was playing with Free Monads in Scala recently and discovered that it could be a perfect way of doing gradient calculations in a functional programming style. Apparently, calculating gradients using Free Monads is not the best idea from the performance point of view, but it could very useful for educational and experimental purposes. It is not a big deal to start building simple neural networks if you have a way of computing gradients for an arbitrary expression in your dispose.

Free Monad is the perfect way to build any kind of abstract syntax tree (AST) representing a computation, and…

Kirill Panarin

Senior Software Engineer @ Spotify and believer that “sophisticated algorithm ≤ simple learning algorithm + good training data”.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store