  toggle dark mode toggle dark mode


I am Floris Laporte,

I write some stuff down once in a while. Mostly about (desktop) linux and machine learning:

Conway Game of Life in a single line of Python

posted on 2021-11-29T19:49:26Z

On Wikipedia, Conway’s game of life is described as a 2D grid of cells for which: 1. Any live cell with fewer than two live neighbours dies, as if by underpopulation. 1. Any live cell with two or three live neighbours lives on to the next generation. 1. Any live cell with more than three live neighbours dies, as if by overpopulation. 1. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

Nextcloud on Arch Linux

posted on 2021-08-06T10:10:35Z · last modified on 2021-08-10T11:57:34Z

I recently had to re-install nextcloud on my arch linux server. I decided it was time to finally document this process. It’s not so difficult, but there are a lot of moving parts that need to come together.

A Fully connected neural network in JAX

posted on 2020-12-25T14:48:19Z
tags: ml (7)machine learning python (6) cv (3)computer vision jax (1)

JAX is the hot new ML-tool on the block. I’m currently trying to get acquinted with it. The first thing I usually do to get to know a tool like this is to make a simple neural network to solve the MNIST digit recognition task. So here we go…

My notes on GPG and PGP

posted on 2020-11-30T15:11:36Z · last modified on 2021-01-23T16:42:08Z

GPG stands for the ‘GNU Privacy Guard’. It’s the standard way to manage your PGP keys on Linux. PGP, in turn, stands for ‘Pretty Good Privacy’. With PGP you typically create a public/private key pair which are respectively used to encrypt and decrypt messages. PGP keys are mostly used to send sensitive information over the internet or to prove your identity online.

Creating a Pytorch solver for sparse linear systems

posted on 2020-10-17T11:04:18Z
tags: ml (7)machine learning python (6) c++ (1)

Not so long ago, I implemented a wrapper library in PyTorch to solve sparse linear systems on the CPU using the SuiteSparse routines under the hood. My goal is to eventually integrate this sparse solver into my photonic circuit simulator, Photontorch. However, for now, I thought it would be instructive to go over the steps I took to implement both the forward pass and the backward pass of such a custom PyTorch function.

Towards a loss function for YOLO

posted on 2020-09-01T09:57:11Z
tags: ml (7)machine learning python (6) cv (3)computer vision yolo (2)

Writing the second part of the YOLO series took a lot longer than I care to admit… but, it’s finally here! In this part we’ll go over the definition of a loss function to train the YOLO architecture.

Wrapping your head around the most used bash operators

posted on 2020-07-26T15:06:55Z

This is mostly geared towards helping bash-beginners. Having a sound understanding of what each bash operator does might help you becoming a bash-wizard ;)

Play tic-tac-toe against a reinforcement agent

posted on 2020-05-30T11:27:03Z · last modified on 2020-06-10T11:53:21Z
tags: ml (7)machine learning rl (3)reinforcement learning game (1) javascript (1)

I finally made an unbeatable tic-tac-toe game in javascript using the qtable obtained in in the first reinforcement learning post. Have Fun going for the tie!

Building Tiny YOLO from scratch using PyTorch

posted on 2020-04-23T12:09:34Z · last modified on 2020-09-01T09:57:11Z
tags: ml (7)machine learning python (6) cv (3)computer vision yolo (2)

In this series we’ll go over YOLO (You Only Look Once), a state-of the art object detection deep neural network. In this blog post, we’ll build the simplest YOLO network: Tiny YOLO v2. This stripped down version of YOLO will yield the easiest introduction to the neural network structure of YOLO, while still providing close to state-of-the-art performance.

SSH via a relay server

posted on 2020-03-31T16:47:48Z · last modified on 2020-05-31T23:12:02Z
tags: linux (2) vps (1)

I often connect via SSH to my desktop computer at my desk at University. However, this computer is behind a firewall and I cannot connect to it from my laptop directly. Luckily I have my Virtual Private Server (VPS) where I - among other things - serve this blog. I use this VPS as a relay server to access my desktop from anywhere with my laptop (and vice versa).

Creating a local email setup with mbsync + msmtp + neomutt + notmuch.

posted on 2020-02-04T07:25:41Z · last modified on 2020-12-21T09:25:24Z
tags: linux (2)

Neomutt is a powerful terminal email client. Using neomutt as my email client has been a real pleasure, however configuring it turns out to be a bit of a pain; there are a lot of pieces that need to fall into place. Consider this post a tutorial on how I configured Neomutt to be my email interface, while I use mbsync for syncing my email, msmtp to send email and notmuch to index my email for efficient searching.

Reinforcement learning from the ground up | part 2: deep Q learning on tic-tac-toe.

posted on 2019-12-22T14:53:34Z · last modified on 2020-06-01T11:36:56Z
tags: ml (7)machine learning python (6) rl (3)reinforcement learning

Previously, we saw that reinforcement learning worked quite well on tic-tac-toe. However, there’s something unsatisfying about working with a Q-table storing all the possible states of the game. It feels like the Agent simply memorizes each state of the game and acts according to some memorized rules obtained by its huge amount of experience (remember that the Agent played 10,000,000 games during training). In this second part of the reinforcement learning series, we’ll swap out the Q table for a neural network.

Reinforcement learning from the ground up | part 1: tic-tac-toe.

posted on 2019-11-29T12:12:07Z · last modified on 2020-06-01T11:36:56Z
tags: ml (7)machine learning python (6) rl (3)reinforcement learning

As a first example to reinforcement learning, we’ll make our computer learn by itself how to play tic-tac-toe. As one of the most simple 2 player games, tic-tac-toe is ideal to get started with reinforcement learning, while still being more interesting that learning to play a single player game.