Torch/CUDA implementation of batch normalization for OctNets.
Basic and advanced torch examples, template for implementing custom C/CUDA modules and implementations of variational auto-encoders.
This article is a short follow-up on my initial collection of examples for getting started with Torch. In the meanwhile, through a series of additional articles, the corresponding GitHub repository has grown, including not only basic examples but also more advanced examples such as variational auto-encoders, generative adversarial networks or adversarial auto encoders. This article aims to provide a short overview of the added examples.
During my master thesis I partly worked on OctNets, octree-bases convolutional neural networks for efficient learning in 3D. Among others, I implemented convolutional batch normalization for OctNets. This article briefly discusses the implementation, which will be available on GitHub.
Based on the Torch implementation of a vanilla variational auto-encoder in a previous article, this article discusses an implementation of a denoising variational auto-encoder. While the theory of denoising variational auto-encoders is more involved, an implementation merely requires a suitable noise model.
After formally introducing the concept of categorical variational auto-encoders in a previous article, this article presents a practical Torch implementation of variational auto-encoders with Bernoulli latent variables.
After introducing the mathematics of variational auto-encoders in a previous article, this article presents an implementation in LUA using Torch. The main challenge when implementing variational auto-encoders are the Kullback-Leibler divergence as well as the reparameterization sampler. Here, both are implemented as separate nn
modules.
Torch is a framework for scientific computing in LUA. However, it has mostly been used for deep learning research as it provides efficient and comfortable C/CUDA implementations of a wide range of (convolutional and/or recurrent) neural network components. In this article, I want to provide a code template allowing to easily extend torch.nn
by custom modules implemented in C and/or CUDA without knowledge of Torch’s core.
Recently proposed neural network architectures, including PointNets and PointSetGeneration networks, allow deep learning on unordered point clouds. In this article, I present a Torch implementation of a PointNet auto-encoder — a network allowing to reconstruct point clouds through a lower-dimensional bottleneck. As loss during training, I implemented a symmetric Chamfer distance in C/CUDA and provide the code on GitHUb.
We are releasing the code and data corresponding to our ArXiv pre-print on weakly-supervised 3D shape completion — a follow-up work on our earlier CVPR’18 paper. The article provides links to the GitHub repositories and data downloads as well as detailed descriptions. It also highlights the differences between the two papers.