
 Description:
APRILANN toolkit (A Pattern Recognizer In Lua with Artificial Neural Networks). This toolkit incorporates ANN algorithms (as dropout, stacked denoising autoencoders, convolutional neural networks), with other pattern recognition methods as hidden markov models (HMMs) among others. Additionally, in experimental stage, it is possible to perform automatic differentiation, for advanced machine learning research.
 Changes to previous version:
 Updated home repository link to follow aprilorg github organization.
 Improved serialize/deserialize functions, reimplemented all the serialization procedure.
 Added exceptions support to LuaPkg and APRILANN, allowing to capture C++ errors into Lua code.

Added
set
class. 
Added
series
class. 
Added
data_frame
class, similar to Python Pandas DataFrame. 
Serialization and deserilization have been updated with more robust and
reusable API, implemented in
util.serialize()
andutil.deserialize()
functions. 
Added
matrix.ext.broadcast
utility (similar to broadcast in numpy). 
Added
ProbablisitcMatrixANNComponent
, which allow to implement probabilistic mixtures of posteriors and/or likelihoods.  Added batch normalization ANN component.

Allowing
matrix.join
to add new axis. 
Added methods
prod()
,cumsum()
andcumprod()
atmatrix
classes. 
Added methods
count_eq()
andcount_neq()
atmatrix
classes. 
Serializable objects API have been augmented with methods
ctor_name()
and
ctor_params()
in Lua, refered toluaCtorName()
andluaCtorParams()
in C++. 
Added
cast.to
to dynamic cast C++ objects pushed into Lua, allowing to convert base class objects into any of its derived classes. 
Added
matrix.sparse
as valid values for targets inann.loss.mse
and
ann.loss.cross_entropy
. 
Changed
matrix
metamethods__index
and__newindex
, allowing to use
matrix
objects with standard Luaoperator[]
. 
Added
matrix.masked_fill
andmatrix.masked_copy
matrix. 
Added
matrix.indexed_fill
andmatrix.indexed_copy
matrix. 
Added
ann.components.probabilistic_matrix
, and its corresponding specializationsann.components.left_probabilistic_matrix
and
ann.components.right_probabilistic_matrix
.  Added operator[] in the right side of matrix operations.

Added
ann.components.transpose
. 
Added
max_gradients_norm
intraianble.supervised_trainer
, to avoid gradients exploding. 
Added
ann.components.actf.sparse_logistic
a logistic activation function with sparsity penalty. 
Simplified
math.add
,math.sub
, ... and other math extensions for reductions, their original behavior can be emulated by usingbind
function. 
Added
bind
function to freeze any positional argument of any Lua function. 
Function
stats.boot
usesmultiple_unpack
to allow a table of sizes and the generation of multiple index matrices. 
Added
multiple_unpack
Lua function. 
Added
__tostring
metamethod to numeric memory blocks in Lua. 
Added
dataset.token.sparse_matrix
, a dataset which allow to traverse by rows a sparse matrix instance. 
Added
matrix.sparse.builders.dok
, a builder which uses the DictionaryofKeys format to construct a sparse matrix from scratch. 
Added method
data
to numeric matrix classes. 
Added methods
values
,indices
,first_index
to sparse matrix class.  Fixed bugs when reading bad formed CSV files.
 Fixed bugs at statistical distributions.
 FloatRGB bug solved on equal (+=, =, ...) operators. This bug affected ImageRGB operations such as resize.
 Solved problems when chaining methods in Lua, some objects end to be garbage collected.
 Improved support of strings in autocompletion (rlcompleter package).

Solved bug at
SparseMatrix<T>
when reading it from a file. 
Solved bug in
Image<T>::rotate90_cw
methods. 
Solved bug in
SparseMatrix::toDense()
method.
C/C++

Better
LuaTable
accessors, using[]
operator. 
Implementation of matrix
__index
,__newindex
and__call
metamethods in C++. 
Implementation of
matProd()
,matCumSum()
andmatCumProd()
functions. 
Implementation of
matCountEq()
andmatCountNeq()
functions for
Matrix<T>
. 
Updated
matrix_ext_operations.h
to change API of matrix operations. All functions have been overloaded to accept an inplace operation and another version which receives a destination matrix.  Adding iterators to language models.

Added
MatrixScalarMap2
which receives asinput2
aSparaseMatrix
instance. This functions needs to be generalized to work with CPU and CUDA. 
The method
SparseMatrix<T>::fromDenseMatrix()
uses aDOKBuilder
object to build the sparse matrix. 
The conversion of a
Matrix<T>
into aSparseMatrix<T>
has been changed from a constructor overload to the static method
SparseMatrix<T>::fromDenseMatrix()
.  Added support for IPyLua.
 Optimized matrix access for confusion matrix.

Minor changes in
class.lua
.  Improved binding to avoid multiple object copies when pushing C++ objects.
 Added Git commit hash and compilation time.
 BibTeX Entry: Download
 URL: Project Homepage
 Supported Operating Systems: Linux, Mac Os X
 Data Formats: Ascii, Binary, Matlab, Tab Separated, Png, Pnm
 Tags: Deep Learning, Machine Learning, Ann, Hmms, Viterbi
 Archive: download here
Other available revisons

Version Changelog Date v0.4.1  Updated home repository link to follow aprilorg github organization.
 Improved serialize/deserialize functions, reimplemented all the serialization procedure.
 Added exceptions support to LuaPkg and APRILANN, allowing to capture C++ errors into Lua code.

Added
set
class. 
Added
series
class. 
Added
data_frame
class, similar to Python Pandas DataFrame. 
Serialization and deserilization have been updated with more robust and
reusable API, implemented in
util.serialize()
andutil.deserialize()
functions. 
Added
matrix.ext.broadcast
utility (similar to broadcast in numpy). 
Added
ProbablisitcMatrixANNComponent
, which allow to implement probabilistic mixtures of posteriors and/or likelihoods.  Added batch normalization ANN component.

Allowing
matrix.join
to add new axis. 
Added methods
prod()
,cumsum()
andcumprod()
atmatrix
classes. 
Added methods
count_eq()
andcount_neq()
atmatrix
classes. 
Serializable objects API have been augmented with methods
ctor_name()
and
ctor_params()
in Lua, refered toluaCtorName()
andluaCtorParams()
in C++. 
Added
cast.to
to dynamic cast C++ objects pushed into Lua, allowing to convert base class objects into any of its derived classes. 
Added
matrix.sparse
as valid values for targets inann.loss.mse
and
ann.loss.cross_entropy
. 
Changed
matrix
metamethods__index
and__newindex
, allowing to use
matrix
objects with standard Luaoperator[]
. 
Added
matrix.masked_fill
andmatrix.masked_copy
matrix. 
Added
matrix.indexed_fill
andmatrix.indexed_copy
matrix. 
Added
ann.components.probabilistic_matrix
, and its corresponding specializationsann.components.left_probabilistic_matrix
and
ann.components.right_probabilistic_matrix
.  Added operator[] in the right side of matrix operations.

Added
ann.components.transpose
. 
Added
max_gradients_norm
intraianble.supervised_trainer
, to avoid gradients exploding. 
Added
ann.components.actf.sparse_logistic
a logistic activation function with sparsity penalty. 
Simplified
math.add
,math.sub
, ... and other math extensions for reductions, their original behavior can be emulated by usingbind
function. 
Added
bind
function to freeze any positional argument of any Lua function. 
Function
stats.boot
usesmultiple_unpack
to allow a table of sizes and the generation of multiple index matrices. 
Added
multiple_unpack
Lua function. 
Added
__tostring
metamethod to numeric memory blocks in Lua. 
Added
dataset.token.sparse_matrix
, a dataset which allow to traverse by rows a sparse matrix instance. 
Added
matrix.sparse.builders.dok
, a builder which uses the DictionaryofKeys format to construct a sparse matrix from scratch. 
Added method
data
to numeric matrix classes. 
Added methods
values
,indices
,first_index
to sparse matrix class.  Fixed bugs when reading bad formed CSV files.
 Fixed bugs at statistical distributions.
 FloatRGB bug solved on equal (+=, =, ...) operators. This bug affected ImageRGB operations such as resize.
 Solved problems when chaining methods in Lua, some objects end to be garbage collected.
 Improved support of strings in autocompletion (rlcompleter package).

Solved bug at
SparseMatrix<T>
when reading it from a file. 
Solved bug in
Image<T>::rotate90_cw
methods. 
Solved bug in
SparseMatrix::toDense()
method.
C/C++

Better
LuaTable
accessors, using[]
operator. 
Implementation of matrix
__index
,__newindex
and__call
metamethods in C++. 
Implementation of
matProd()
,matCumSum()
andmatCumProd()
functions. 
Implementation of
matCountEq()
andmatCountNeq()
functions for
Matrix<T>
. 
Updated
matrix_ext_operations.h
to change API of matrix operations. All functions have been overloaded to accept an inplace operation and another version which receives a destination matrix.  Adding iterators to language models.

Added
MatrixScalarMap2
which receives asinput2
aSparaseMatrix
instance. This functions needs to be generalized to work with CPU and CUDA. 
The method
SparseMatrix<T>::fromDenseMatrix()
uses aDOKBuilder
object to build the sparse matrix. 
The conversion of a
Matrix<T>
into aSparseMatrix<T>
has been changed from a constructor overload to the static method
SparseMatrix<T>::fromDenseMatrix()
.  Added support for IPyLua.
 Optimized matrix access for confusion matrix.

Minor changes in
class.lua
.  Improved binding to avoid multiple object copies when pushing C++ objects.
 Added Git commit hash and compilation time.
December 3, 2015, 15:01:36 v0.3.1  Removed bugs.
 Added Travis CI support.
 KNN and clustering algorithms.
 ZCA and PCA whitening.
 Quickprop and ASGD optimization algorithms.
 QLearning trainer.
 Sparse float matrices are available in CSC an CSR formats.
 Compilation with Homebrew and MacPorts available.
 Compilation issues in Ubuntu 12.04 solved.
May 30, 2014, 10:49:10 v0.3.1alpha Added automatic differentiation package. Removed some bugs and memory leaks. Better decouplong between ANN modules, optimizer objects and loss functions. Addition of Conjugate Gradient, Rprop and Quickprop algorithms.
January 9, 2014, 22:09:03 v0.3.0beta Initial Announcement on mloss.org.
October 28, 2013, 22:20:13
Comments
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.