/TFSparseCode

TensorFlow implementation for Sparse Coding

Primary LanguagePython

Implementation of sparse coding in TensorFlow

This repository implements the following sparse solvers

ADAM: Kingma, Diederik, and Jimmy Ba. "Adam: A method for stochastic optimization." arXiv preprint arXiv:1412.6980 (2014).
Minimizes squared loss with sparse regularizer

ISTA: Chambolle, Antonin, et al. "Nonlinear wavelet image processing: variational problems, compression, and noise removal through wavelet shrinkage." IEEE Transactions on Image Processing 7.3 (1998): 319-335.

FISTA: Beck, Amir, and Marc Teboulle. "A fast iterative shrinkage-thresholding algorithm for linear inverse problems." SIAM journal on imaging sciences 2.1 (2009): 183-202.

LCA: Rozell, Christopher, et al. "Locally competitive algorithms for sparse approximation." 2007 IEEE International Conference on Image Processing. Vol. 4. IEEE, 2007.

LCA_ADAM: Modification of LCA to use ADAM optimizer for sparse approxmation as opposed to standard gradient descent with LCA.

Prerequisites:
TensorFlow
Python 2.7
OpenPV (using pvp files for file storage, be sure to add </path/to/OpenPV/python> to your python path)

Directories:
dataObj: Directory containing objects for reading data
plots: Directory containing plotting tools
tf: Directory containing tensorflow model building and running
runs: Directory containing scripts for running models. Contains parameters. Must be ran from outermost directory