Simple Autoencoder

If you look long enough into the autoencoder, it looks back at you. The Autoencoder is a fun deep learning model to look into. Its goal is simple: given an input image, we would like to have the same output image. It’s sort of an identity function for deep learning models, but it is composed of two parts: an encoder and decoder, with the encoder translating the images to a latent space representation and the encoder translating that back to a regular images that we can view. ...

August 16, 2019 · 5 min · Carin Meier

Clojure MXNet April Update

Spring is bringing some beautiful new things to the Clojure MXNet. Here are some highlights for the month of April. Shipped We’ve merged 10 PRs over the last month. Many of them focus on core improvements to documentation and usability which is very important. The MXNet project is also preparing a new release 1.4.1, so keep on the lookout for that to hit in the near future. Clojure MXNet Made Simple Article Series Arthur Caillau added another post to his fantastic series - MXNet made simple: Pretrained Models for image classification - Inception and VGG ...

April 26, 2019 · 4 min · Carin Meier

Clojure MXNet March Update

I’m starting a monthly update for Clojure MXNet. The goal is to share the progress and exciting things that are happening in the project and our community. Here’s some highlights for the month of March. Shipped Under the shipped heading, the 1.4.0 release of MXNet has been released, along with the Clojure MXNet Jars. There have been improvements to the JVM memory management and an Image API addition. You can see the full list of changes here ...

March 22, 2019 · 2 min · Carin Meier

Object Detection with Clojure MXNet

Object detection just landed in MXNet thanks to the work of contributors Kedar Bellare and Nicolas Modrzyk. Kedar ported over the infer package to Clojure, making inference and prediction much easier for users and Nicolas integrated in his Origami OpenCV library into the the examples to make the visualizations happen. We’ll walk through the main steps to use the infer object detection which include creating the detector with a model and then loading the image and running the inference on it. ...

January 19, 2019 · 4 min · Carin Meier

How to GAN a Flan

It’s holiday time and that means parties and getting together with friends. Bringing a baked good or dessert to a gathering is a time honored tradition. But what if this year, you could take it to the next level? Everyone brings actual food. But with the help of Deep Learning, you can bring something completely different - you can bring the image of baked good! I’m not talking about just any old image that someone captured with a camera or created with a pen and paper. I’m talking about the computer itself creating. This image would be never before seen, totally unique, and crafted by the creative process of the machine. ...

December 18, 2018 · 6 min · Carin Meier

Clojure MXNet - The Module API

This is an introduction to the high level Clojure API for deep learning library MXNet. The module API provides an intermediate and high-level interface for performing computation with neural networks in MXNet. To follow along with this documentation, you can use this namespace to with the needed requires: (ns docs.module (:require [clojure.java.io :as io] [clojure.java.shell :refer [sh]] [org.apache.clojure-mxnet.eval-metric :as eval-metric] [org.apache.clojure-mxnet.io :as mx-io] [org.apache.clojure-mxnet.module :as m] [org.apache.clojure-mxnet.symbol :as sym] [org.apache.clojure-mxnet.ndarray :as ndarray])) Prepare the Data In this example, we are going to use the MNIST data set. If you have cloned the MXNet repo and cd contrib/clojure-package, we can run some helper scripts to download the data for us. ...

July 5, 2018 · 5 min · Carin Meier

Clojure MXNet Joins the Apache MXNet Project

I’m delighted to share the news that the Clojure package for MXNet has now joined the main Apache MXNet project. A big thank you to the efforts of everyone involved to make this possible. Having it as part of the main project is a great place for growth and collaboration that will benefit both MXNet and the Clojure community. Invitation to Join and Contribute The Clojure package has been brought in as a contrib clojure-package. It is still very new and will go through a period of feedback, stabilization, and improvement before it graduates out of contrib. ...

July 1, 2018 · 2 min · Carin Meier

Meet Clojure MXNet - NDArray

This is the beginning of a series of blog posts to get to know the Apache MXNet Deep Learning project and the new Clojure language binding clojure-package MXNet is a first class, modern deep learning library that AWS has officially picked as its chosen library. It supports multiple languages on a first class basis and is incubating as an Apache project. The motivation for creating a Clojure package is to be able to open the deep learning library to the Clojure ecosystem and build bridges for future development and innovation for the community. It provides all the needed tools including low level and high level apis, dynamic graphs, and things like GAN and natural language support. ...

June 3, 2018 · 4 min · Carin Meier

On Staying Technical

I was 10 years into my career when I met her. I could count the number of other women programmers I had worked with on one hand and none of them had young children at home like me. She was not only incredibly experienced and competent, but also had a son in college. I was curious about her career path so I asked her one day at lunch why she was still programming and hadn’t become a manager instead. ...

March 4, 2018 · 1 min · Carin Meier

Cats and Dogs with Cortex Redux

I wrote a blog post a while back about using a Clojure machine learning library called Cortex to do the Kaggle Cats and Dogs classification challenge. I wanted to revisit it for a few reasons. The first one is that the Cortex library has progressed and improved considerably over the last year. It’s still not at version 1.0, but it my eyes, it’s really starting to shine. The second reason is that they recently published an example of using the RESNET50 model, (I’ll explain later on), to do fine-tuning or transfer learning. The third reason, is that there is a great new plugin for leiningen the supports using Jupyter notebooks with Clojure projects. These notebooks are a great way of doing walkthroughs and tutorials. ...

November 7, 2017 · 5 min · Carin Meier