Skip to content

Revision 0.4.1

Latest
Compare
Choose a tag to compare
@pakozm pakozm released this 03 Dec 13:51

Unstable changes

  • Improved serialize/deserialize functions, reimplemented all the serialization
    procedure.
  • Added exceptions support to LuaPkg and APRIL-ANN, 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() and util.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.

API Changes

  • Added batch normalization ANN component.
  • Allowing matrix.join to add new axis.
  • Added methods prod(), cumsum() and cumprod() at matrix classes.
  • Added methods count_eq() and count_neq() at matrix classes.
  • Serializable objects API have been augmented with methods ctor_name() and
    ctor_params() in Lua, refered to luaCtorName() and luaCtorParams() 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 in ann.loss.mse and
    ann.loss.cross_entropy.
  • Changed matrix metamethods __index and __newindex, allowing to use
    matrix objects with standard Lua operator[].
  • Added matrix.masked_fill and matrix.masked_copy matrix.
  • Added matrix.indexed_fill and matrix.indexed_copy matrix.
  • Added ann.components.probabilistic_matrix, and its corresponding
    specializations ann.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 in traianble.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 using bind function.
  • Added bind function to freeze any positional argument of any Lua function.
  • Function stats.boot uses multiple_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
    Dictionary-of-Keys 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.

Bugs fixed

  • 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 auto-completion (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() and matCumProd() functions.
  • Implementation of matCountEq() and matCountNeq() functions for
    Matrix<T>.
  • Updated matrix_ext_operations.h to change API of matrix operations. All
    functions have been overloaded to accept an in-place operation and another
    version which receives a destination matrix.
  • Adding iterators to language models.
  • Added MatrixScalarMap2 which receives as input2 a SparaseMatrix
    instance. This functions needs to be generalized to work with CPU and CUDA.
  • The method SparseMatrix<T>::fromDenseMatrix() uses a DOKBuilder object
    to build the sparse matrix.
  • The conversion of a Matrix<T> into a SparseMatrix<T> has been changed from
    a constructor overload to the static method
    SparseMatrix<T>::fromDenseMatrix().

Other

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