No training implementation is complete until it allows training on a cluster where each machine has multiple GPUs. Multi-node/Multi-GPU Training with PyTorch Lightning SageMaker does a great job enabling this in Script Mode, and all we have to do is write code that supports SageMaker SMDDP implementation of the distributed training DDP protocol. PyTorch Lighting … Continue reading Amazon SageMaker: Distributed Training

# Category: F#

# Amazon SageMaker: What Tutorials Don’t Teach

At Fetch we reward you for taking pictures of store and restaurant receipts. Our app needs to read and understand crumpled, dark, smudged, warped, skewed, creased, you get the "picture" images, taken in cars, in your lap, on the way out, while walking the dog, taking out the trash, doing your nails, etc.., etc. Not … Continue reading Amazon SageMaker: What Tutorials Don’t Teach

# F# Humor (kinda)

So I was bored, didn't know what to do, started solving problems on codewars (shut up!). There was this little problem there, where they are asking you to compute $latex \frac{\sum_{i=1}^n i!}{n!}&s=2$, for potentially large n's with $latex 10^{-6}$ precision. It's easy to see that this needs to be refactored (no need to actually compute … Continue reading F# Humor (kinda)

# Scripting Video Editing with F# and FFmpeg

Computer vision should not be confused with image processing (as we all know). I love building computer vision pipelines, but sometimes menial tasks of pure image processing, automated editing come up. Suppose you had the same astronauts from one of the previous posts participating in a study, where they are actually filmed watching something, say … Continue reading Scripting Video Editing with F# and FFmpeg

# Detecting Faces with Dlib from F#. IFSharp Notebook

The Choices I have experimented with OpenCV and Dlib face detection in my computer vision pipeline. Both work well, but the Dlib one worked better: it is more sensitive with (in my case) almost no false positives right out of the box! Dlib uses several HOG filters that account for profile as well as frontal … Continue reading Detecting Faces with Dlib from F#. IFSharp Notebook

# HashSet, Graph, Cognac

The post on applying GPU to finding Eulerian path mentioned a stumbling block: partitioning a very specific kind of graph. In general, partitioning is a hard problem, NP-hard actually. The graphs we are dealing with are very specific, though, and may be partitioned in $latex O(|E|)$ time (E - the set of graph edges). Our … Continue reading HashSet, Graph, Cognac

# Getting Emotional with Affectiva, F#, and Emgu

I've been playing with Affectiva emotion, demographics, and face detection SDK, found it excellent, however, their sample gallery lacks a sample in F#! So here we are to correct that. I just wanted a simple F# script that would let me take all kinds of the SDK options for a ride. The script itself is … Continue reading Getting Emotional with Affectiva, F#, and Emgu

# Zooming Through Euler Path: Supercharging with GPU

So, continuing where we left off: Walking the Euler Path: Intro Visualizing Graphs Walking the Euler Path: GPU for the Road Walking the Euler Path: PIN Cracking and DNA Sequencing For the Win And finally I ran the GPU-enabled algorithm for finding the Euler path. And the results: Generating euler graph: vertices = 10,485,760; avg … Continue reading Zooming Through Euler Path: Supercharging with GPU

# Walking the Euler Path: PIN Cracking and DNA Sequencing

Continuing on to some cool applications of Eulerian paths. Intro Visualization GPU/CUDA Injection The goal of this little graph experiment remains exploration of accelerating Eulerian path finding on the GPU. This is the final introductory post. Eulerian Path Hierholzer algorithm works great. It's linear in the number of edges, so as fast as we can … Continue reading Walking the Euler Path: PIN Cracking and DNA Sequencing

# Walking the Euler Path: GPU for the Road

Continuation of the previous posts: Intro Visualization GPU Digression I was going to talk about something else this week but figured I'd take advantage of the free-hand format and digress a bit. Continuing the travel metaphor and remembering Julius Cesar's "alea iacta", we'll talk about GPU algorithms, for which I invariably use my favorite Aela.CUDA … Continue reading Walking the Euler Path: GPU for the Road