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 (l_2, l_1, 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

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).

CKN-C-matlab

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.

FlipFlop

FlipFlop is an open-source software, implementing a fast method for de novo transcript discovery and abundance estimation from RNA-Seq data. It differs from classical approaches such as Cufflinks by simultaneously performing the identification and quantitation tasks using a penalized maximum likelihood approach, which leads to improved precision recall. Other software taking this approach have an exponential complexity in the number of exons of a gene. We use a novel algorithm based on network flow formalism, which gives us a polynomial runtime. In practice, FlipFlop was shown to outperform penalized maximum likelihood based software in terms of speed, and to perform transcript discovery in less than 1/2 second for large genes. FlipFlop 1.0.0 is a user friendly bioconductor R package. It is freely available on the Bioconductor website. The code was written co-authored by Elsa Bernard (Institut Curie), Laurent Jacob (CNRS), and me.

CKN-seq

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).

Loter

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).

Stochs

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).

MODL

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.

BlitzNet

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).

CKN

This is the open-source software package corresponding to the paper “Convolutional kernel networks” published at NIPS’14. We are going to release soon a new GPU implementation corresponding to the NIPS’16 paper “End-to-end kernel learning with supervised convolutional kernel networks”.

Patch-CKN

This is the software package and the new dataset “RomePatches” corresponding to the IJCV paper “Convolutional Patch Representations for Image Retrieval: an Unsupervised Approach”.

Dolphin

This is the open-source software package corresponding to the paper IEEE-TSP paper “DOLPHIn-Dictionary Learning for Phase Retrieval”. The package is written and maintained by Andreas Tillmann (TU Darmstadt).

Misc

  • The code corresponding to the paper “Complexity Analysis of the Lasso Regularization Path” is available here.

  • The denoising code of my ICCV’09 paper can be found here.The package contains binary files for Linux 64bits computers, and an instruction file. Academic use only

  • The demosaicking code of my ICCV’09 paper can be found here.The package contains binary files for Linux 64bits computers, and an instruction file. Academic use only.

  • The KSVD source code of my IEEE-TIP and SIAM-MMS papers from 2008 can be found here. This package is not maintained anymore and I will not respond to any question about the source code. If you need Linux binaries to do experiments, please contact me.