brain of mat kelcey...
running paula on tiliqua
June 13, 2026 at 10:10 PM | categories: eurorack, tiliqua, fpga
running paula rtl on the tiliqua fpga for eurorack!
keras3 to jax to tflite/liteRT via orbax
November 25, 2024 at 02:10 PM | categories: tflite, litert, keras3, jax, orbax
vmapped keras3 model inference in tflite
yolz; you only look o̶n̶c̶e̶ zero times
October 26, 2024 at 06:45 PM | categories: keras3, jax
zero shot object detection in kera3 jax
differentiable kalman filters in jax
March 29, 2024 at 06:45 PM | categories: jax
kalman filters have numerous parameters to tune, why not roll them out with jax and use backprop to fit them
a (larger) wavenet neural net running on an FPGA at (almost) 200,000 inferences / sec
October 12, 2023 at 01:00 PM | categories: eurorack, wavenet, fpga
wavenet on an mcu is fast, but, oh boy! wait until you see an even larger model running on an FPGA!
a wavenet neural net running on a microcontroller at (almost) 50,000 inferences / sec
September 09, 2023 at 09:00 PM | categories: mcu, wavenet, eurorack
wavenet can run at audio rates on an mcu, if you cache carefully, and be used for fun eurorack effects.
high performance ML with JAX
September 12, 2021 at 12:30 PM | categories: jax, talk
did a talk ay pycon on jax. check out the recording!
evolved channel selection
March 01, 2021 at 10:20 PM | categories: projects, ga, jax
rather than use all 13 channels in a multi spectral image for classification can we train a model that is robust to all combos, at all resolutions, and use a genetic algorithm to choose which are the most valuable? (spoiler; yes)
crazy large batch sizes
February 14, 2021 at 10:30 PM | categories: quick_hack, tpu, jax
a quick hack to see how fast we can get a v3-32 pod slice cranking with a global batch size of 170,000; tl-dr pretty fast!
solving y=mx+b... with jax on a tpu pod slice
February 07, 2021 at 01:00 PM | categories: tpu, ensemble_nets, jax, projects, haiku
a 4 (and a bit) part tutorial / colab / screencast series starting with jax fundamentals working up a data parallel approach to running on a cloud tpu pod slice... all focused on solving the toughest problem in machine learning; 1d y=mx+b
develomentor.com podcast interview
December 07, 2020 at 05:00 PM | categories: talk
was a guest on the develomentor podcast talking about random parts of my career
out of distribution detection using focal loss
December 02, 2020 at 01:00 PM | categories: objax, jax, projects
a series of small experiments on using focal loss to do out of distribution detection
my updated list of cool machine learning books
November 01, 2020 at 09:40 PM | categories: Uncategorized
it's been ten years so it's probably time to update my list of cool machine learning books.
dithernet very slow movie player
October 21, 2020 at 10:30 PM | categories: gan, jax, projects, objax
a GAN experiment to generate dithers for an eink screen minimising pixel change between frames for a very slow movie player.
ensemble networks
September 17, 2020 at 06:30 AM | categories: objax, projects, ensemble_nets, jax
ensemble nets; using jax vmap to batch over not just the inputs of a model but also sets of multiple models parameters.
metric learning for image similarity search in objax
September 02, 2020 at 12:00 PM | categories: objax, metric_learning, jax
an objax tutorial on using contrastive learning for image similarity.
objax on honeysuckle farm
August 30, 2020 at 02:45 PM | categories: talk
i think high level short explainer videos on jax frameworks while doing farm chores is going to be a growing genre.
the map interpretation of attention
August 19, 2020 at 10:30 AM | categories: talk, three_strikes_rule
a talk i did at melbourne ml/ai on how attention mechanism can be interpretated as a form of differentiable map. check out the recording!
self supervised learning and making use of unlabelled data
July 02, 2020 at 05:00 PM | categories: talk
a recording of a talk i did on self supervised learning at yow data.
a jax random embedding ensemble network
June 15, 2020 at 06:30 AM | categories: ensemble_nets, jax
random embedding networks can be used to generate weakly labelled data for contrastive learning and can be run in single model ensembles as a single forward pass in jax.
Next Page »
popular posts...
FPGA wavenets : eurorack audio processing neural nets running at ~200,000 inferences/sec (oct 2023)
dithernet very slow movie player : a GAN that slowly plays a movie over a year on an eink screen (oct 2020)
evolved channel selection : neural networks robust to any subset of input channels, at any resolution (mar 2021)
ensemble nets : training ensembles as a single model using jax on a tpu pod slice (sept 2020)
bnn : counting bees with a rasp pi (may 2018)
drivebot : learning to do laps with reinforcement learning and neural nets (feb 2016)
wikipedia philosophy : do all first links on wikipedia lead to philosophy? (aug 2011)
some papers from my time at google research / brain...
- Natural Questions: a Benchmark for Question Answering Research
- Using Simulation and Domain Adaptation to Improve Efficiency of Deep Robotic Grasping
- WikiReading: A Novel Large-scale Language Understanding Task over Wikipedia
my honours thesis
the co-evolution of cooperative behaviour (1997) evolving neural nets with genetic algorithms for communication problems.
old projects...
- latent semantic analysis via the singular value decomposition (for dummies)
- semi supervised naive bayes
- statistical synonyms
- round the world tweets
- decomposing social graphs on twitter
- do it yourself statistically improbable phrases
- should i burn it?
- the median of a trillion numbers
- deduping with resemblance metrics
- simple supervised learning / should i read it?
- audioscrobbler experiments
- chaoscope experiment





