March 18, 2020
Epidemiology is the science of the distribution, patterns, and determinants of diseases. We are interested in the distribution here. Like in many scientific fields mathematical modeling plays a large role. We look a a basic model for the spread of disease.
March 17, 2020
Epidemiologie ist die Wissenschaft von der Ausbreitung von Krankheiten. Wie in vielen wissenschaftlichen Disziplinen gibt es mathematische Modelle, mit denen man versuchen kann, die Ausbreitung zu beschreiben. Wir werfen heute einen Blick auf ein grundlegendes Modell.
Feb. 10, 2020
I have been more than usually quiet here. This is not because I have been writing little, but because I have been writing much. I'm very thrilled to work with Eli Stevens and Luca Antiga on our book, Deep Learning with PyTorch.
Nov. 22, 2019
I'm experimenting with low-barrier sponsoring of some of my work via GitHub Sponsors. Here is the first report for subscribers.
Nov. 15, 2019
Today we look at how to build PyTorch on AMD's ROCm.
Nov. 8, 2019
An extension providing offline Neural Machine Translation in LibreOffice Writer.
Oct. 2, 2019
Explaining AI outputs has been a topic I have worked on implementing quite a bit. Last May I gave a talk Der KI auf die Finger geschaut (Keeping an eye on the AI) to mathematicians and actuaries at the University of Göttingen.
July 5, 2019
Today we look at the Sinkhorn iteration for entropy-regularised Wasserstein distances as a loss function between histograms.
June 26, 2019
Three of the most liked features of PyTorch are the extensible autograd mechanism, the ability to extend PyTorch with C++ efficiently, and the tracing/scripting mechanism. Which leads to the natural question - can we have all at the same time?
In this post, we dive into the autograd internals and come out with a solution.
June 7, 2019
PyTorch is a great project and I have only met very helpful people when contributing to it. However, the code base can be quite intimidating. Here we look at fixing a simple bug in detail and see that it is a less daunting task than it might seem at first.
May 24, 2019
And now for something completely different: In order to access the Fischertechnik Robotics TXT's camera functions under Wine, one needs to cope with the camera port being opened slowly. We provide a small Python proxy to solve this.
April 12, 2019
Exponentially weighted moving averages are used in several places in machine learning (often under the header of momentum). We look at the connection between batch size and momentum.
April 8, 2019
In a second very technical PyTorch JIT article, we look at graphs, specialization, and the impact on optimizations in the JIT.
March 16, 2019
Implementing fast recurrent neural networks is a challenging task. This is not only a hassle for training existing architectures - sometimes optimized implementations such as CuDNN's LSTM help there. More gravely, it also limits experimentation with new architectures.
Dec. 14, 2018
This week, we had a PyTorch Meetup in Munich at Microsoft.
It was great to see more than 90 people visit for the two talks and PyTorch chat over Pizza and drinks afterwards! Piotr Bialecki gave a talk on semantic search on the PyTorch forums, and I had the honor of talking about PyTorch, the JIT, and Android.
Oct. 27, 2018
Recently, I discussed the use of PyTorch on Mobile / IoT-like devices. Naturally, the Caffe2 Android tutorial was a starting point. Getting it to work with Caffe2 from PyTorch and recent Android wasn't trivial, though. Apparently, other people have not had much luck, I easily got a dozen questions about it on the first day after mentioning it in a discussion.
This should be easier. Here is how.
July 28, 2018
The beauty of PyTorch is that it makes its magic so conveniently accessible from Python. But how does it do so? We take a peek inside the gears that make PyTroch tick.
(Note that this is a work in progress. I'd be happy to hear your suggestions for additions or corrections.)
June 26, 2018
Today I gave a talk on Alex Graves's classic RNN paper and what I took away from implementing the handwriting generation model in PyTorch. To me, the density of insights combined with the almost complete absence of mechanical bits as well as the relatively short training time, makes this a very worthwhile exercise that I can heartily recommend to anyone interested in RNNs.
June 15, 2018
The beautiful thing of PyTorch's immediate execution model is that you can actually debug your programs.
Sometimes, however, the asynchronous nature of CUDA execution makes it hard. Here is a little trick to debug your programs.
June 4, 2018
At the excellent fast.ai course and website, they are training a language model zoo.
It's a charming idea and here is (not quite complete yet) code and model I got for German.
Oct. 29, 2017
The other day I got a question how to do wavelet transformation in PyTorch in a way that allows to compute gradients (that is gradients of outputs w.r.t. the inputs, probably not the coefficients). I like Pytorch and I happen to have a certain fancy for wavelets as well, so here we go.
May 29, 2017
This is following up on my post on improved and semi-improved training of Wasserstein GANs. A few days ago, Kodaldi et al published How to Train Your DRAGAN. They introduce an algorithmic game theory approach and propose to apply the gradient penalty only close to the real-data manifold. We take a look at their objective function, offer a new possible interpretation and also consider what might be wrong in Improved Training objective.
While doing so we introduce PRODGAN and SLOGAN.
April 13, 2017
We look at Improved Training of Wasserstein GANs and describe some geometric intuition on how it improves over the original Wasserstein GAN article.
Updated: We also introduce Semi-Improved Training of Wasserstein GANs, a variant that is simpler to implement as it does not need second derivatives.