Julien Mairal - Software

The software packages below are either written by me, or by my students, when mentioned.

Cyanure toolbox

Cyanure is an open-source C software package with a Python interface. The goal of Cyanure is to provide state-of-the-art solvers for learning linear models, based on stochastic variance-reduced stochastic optimization with acceleration mechanisms. Cyanure can handle a large variety of loss functions (logistic, square, squared hinge, multinomial logistic) and regularization functions (l2, l1, elastic-net, fused Lasso, multi-task group Lasso). It provides a simple Python API, which is very close to that of scikit-learn, which should be extended to other languages such as R or Matlab in a near future.


SPAMS is an optimization toolbox implementing algorithms to address various machine learning and signal processing problems involving dictionary learning and matrix factorization (e.g., NMF, sparse PCA); solving medium-scale sparse decomposition problems with LARS, coordinate descent, OMP, SOMP, proximal methods; solving large-scale sparse estimation problems with stochastic optimization; solving structured sparse decomposition problems (e.g., sparse group lasso, tree-structured regularization, structured sparsity with overlapping groups). The code was mostly written by me. Interfaces with Python and R were developed by Jean-Paul Chieze (Inria). Latest releases for Python3 and R3 were packaged and are maintained by Ghislain Durif (Inria).


This is a re-implementation of the convolutional kernel network (CKN) methods introduced in Julien Mairal. End-to-End Kernel Learning with Supervised Convolutional Kernel Networks. Adv. NIPS. 2016. This is an almost pure C implementation using directly CUDA and CUDNN, along with a Matlab interface. The software package features both the unsupervised and supervised variants of CKNs and is open-source with a GPLv3 license.


CKN-seq is a software package to model biological sequences with convolutional kernel networks. The current implementation corresponds to the BiorXiv preprint “Predicting Transcription Factor Binding Sites withConvolutional Kernel Networks”. It was written by Dexiong Chen (Inria).


This is a software package for local ancestry inference corresponding to the BiorXiv preprint “Loter: A Software Package to Infer Local Ancestry for a Wide Range of Species”. The package is written and maintained by Thomas Dias-Alves (Univ. Grenoble Alpes).


This is the open-source software package corresponding to the NIPS’17 paper “ Stochastic Optimization with Variance Reduction for Infinite Datasets with Finite-Sum Structure” for large-scale machine learning problems with perturbations. The package is written and maintained by Alberto Bietti (Inria).


This is the open-source software package corresponding to the ICML’16 paper “Dictionary Learning for Massive Matrix Factorization” for huge-scale matrix factorization. The package is written and maintained by Arthur Mensch (Inria). This is a highly optimized library that is able to handle matrices of several terabytes on a single workstation.


This is the open-source software package corresponding to the ICCV’17 paper “BlitzNet: A Real-Time Deep Network for Scene Understanding”. This is a real-time deep network for object detection and scene segmentation. It is written and maintained by Mikita Dvornik (Inria).