|
1 | 1 | ChangeList |
2 | 2 | ========== |
3 | 3 |
|
4 | | -Master branch unstable release |
5 | | ------------------------------- |
| 4 | +Master branch release |
| 5 | +--------------------- |
6 | 6 |
|
7 | | -- Added `matrix.abs`. |
8 | | -- Solved bug at method `matrix::best_span_iterator::setAtWindow`. Becaose of It |
9 | | - the method didn't works when the matrix was a sub-matrix (slice) of other |
10 | | - matrix. |
11 | | -- Added `matrix.join` method. |
12 | | -- Added PCA-GS algorithm for efficient computation of PCA (iterative algorithm), |
| 7 | +v0.3.0-beta relase |
| 8 | +------------------ |
| 9 | + |
| 10 | +### API Changes |
| 11 | + |
| 12 | +- Added `loss` parameter to `trainable.supervised_trainer` methods. |
| 13 | +- Added `optimizer` parameter to `trainable.supervised_trainer` methods. |
| 14 | +- Added `ann.optimizer` package, which has the implementation of weight update |
| 15 | + based on weight gradient. So, the ANN components only compute gradients. |
| 16 | + This allows to implement different optimization methods (as "Conjugate |
| 17 | + Gradient", or "Linear Search Brack-Propagation") with the same gradient |
| 18 | + computation. |
| 19 | +- Loss functions `ann.loss` API has been changed, now the loss computation is |
| 20 | + done in two separated steps: |
| 21 | + - `matrix = loss:compute_loss(output,target)`: which returns a matrix with |
| 22 | + the loss of every pair of patterns, allowing to perform several loss |
| 23 | + computations without taken them into account. |
| 24 | + - `matrix = loss:accum_loss(matrix)`: which accumulates the loss in the |
| 25 | + internal state of the class. |
| 26 | +- Added a new version of `loss` function, which computes mean and |
| 27 | + sample variance of the loss. Besides, the loss computation is done |
| 28 | + with doubles, being more accurated than before. |
| 29 | +- `replacement` parameter in SDAE doesn't force `on_the_fly` parameter, they are |
| 30 | + independent. |
| 31 | +- SDAE training has been changed in order to allow the use of LUA datasets, |
| 32 | +- Replaced `cpp_class_binding_extension` by `class_extension` function, |
| 33 | + adding Lua classes support besides to CPP binded classes. |
| 34 | +- Modified `class` and `class_instance` functions to be more homogeneous |
| 35 | + with C++ binding. |
| 36 | +- Added support for GZipped matrices load and save from C++, so functions |
| 37 | + `matrix.savefile` and `matrix.loadfile` (and its correspondence for complex |
| 38 | + numbers, double, int32, and char) were removed. Methods `matrix.fromFilename` |
| 39 | + and `matrix.toFilename` accept '.gz' extension. |
| 40 | + |
| 41 | +### Packages rename |
| 42 | + |
| 43 | +- Changed package `sdae` to `ann.autoencoders`. |
| 44 | +- Changed package `loss_functions` to `ann.loss`. |
| 45 | +- Splitted `mathcore` package into `mathcore` and `complex` packages. |
| 46 | +- Renamed `math` package to `mathcore` to avoid the collision with Lua standard |
| 47 | + math library. |
| 48 | + |
| 49 | +### New features |
| 50 | + |
| 51 | +- April-ANN is deployed as a standalone executable and as a shared library for |
| 52 | + Lua 5.2. |
| 53 | +- Modified `lua.h` to incorporate the GIT commit number in the disclaimer. |
| 54 | +- Added Lua autocompletion when readline is available. |
| 55 | +- Implemented SignalHandler class in C++. |
| 56 | +- Added `signal.register` and `signal.receive` functions to Lua. |
| 57 | +- Added to `matrix` the methods `map`, `contiguous`, `join`, `abs`, `tan`, |
| 58 | + `atan`, `atanh`, `sinh`, `asin`, `asinh`, `cosh`, `acos`, `acosh`, `fromMMap`, |
| 59 | + `toMMap`, `div`, `max`, `min`. |
| 60 | +- Added `iterator` class, which is a wrapper around Lua iterators, but |
| 61 | + provides a more natural interface with functional programming procedures |
| 62 | + as `map`, `filter`, `apply`, or `reduce`. |
| 63 | +- Added methods `iterate`, `field`, `select` to iterator Lua class. |
| 64 | +- `table.insert` returns the table, which is useful for reduction operations. |
| 65 | +- Added `table` method to `iterator` class. |
| 66 | +- Added naive `L1_norm` regularization. |
| 67 | +- Added `dataset.clamp`. |
| 68 | +- Added `mathcore.set_mmap_allocation` function, which allows to forces the |
| 69 | + use of mmap for `matrix` memory allocation. |
| 70 | +- Added `ann.components.slice`. |
| 71 | +- Added GS-PCA algorithm for efficient computation of PCA (iterative algorithm), |
13 | 72 | `stats.iterative_pca` Lua function. |
14 | | -- Added `fromMMap` and `toMMap` for `matrix` class, currently only with floats. |
15 | 73 | - Added basic MapReduce implementation in Lua. |
16 | 74 | - Added `stats.correlation.pearson` Lua class. |
17 | 75 | - Added `stats.bootstrap_resampling` function. |
18 | | -- Added method `iterate` to iterator Lua class. |
19 | | -- Modified `lua.h` to incorporate the GIT commit number in the disclaimer. |
20 | | -- `table.insert` returns the table, which is useful for reduction operations. |
21 | | -- Added `table` method to `iterator` class. |
22 | | -- Added a new version of `loss` function, which computes mean and |
23 | | - sample variance of the loss. Besides, the loss computation is done |
24 | | - with doubles, being more accurated than before. |
25 | | -- Added `loss` parameter to `trainable.supervised_trainer` methods. |
26 | 76 | - Added `math.add`, `math.sub`, `math.mul`, `math.div` functions. |
27 | | -- Methods `field` and `select` added to `iterator` class. |
28 | | -- Added `div` method to `matrix`. |
29 | | -- Added `signal.register` and `signal.receive` functions to Lua. |
30 | | -- Implemented SignalHandler class in C++. |
31 | 77 | - `trainable` and `ann.mlp.all_all` are using `matrix:to_lua_string()` |
32 | 78 | method. |
33 | 79 | - Added method `to_lua_string()` in all matrix types, so the method produce |
34 | 80 | a Lua chunk which is loadable and produce a matrix. |
35 | | -- Added `iterator` class, which is a wrapper around Lua iterators, but |
36 | | - provides a more natural interface with functional programming procedures |
37 | | - as `map`, `filter`, `apply`, or `reduce`. |
38 | 81 | - Added serialization to `parallel_foreach`, allowing to produce outputs which |
39 | 82 | could be loaded by the caller process. |
40 | 83 | - Declaration of `luatype` function as global, it wasn't. |
41 | | -- Added BIND_STRING_CONSTANT to luabind, so it is possible to export C string |
42 | | - constants to Lua. |
43 | | -- Removed warning of clang about unused variables, adding a new macro |
44 | | - `UNUSED_VARIABLE(x)` defined in the header `utils/c_src/unused_variable.h`. |
45 | 84 | - Added `iterable_map` and `multiple_ipairs` functions to the Lua utilities. |
46 | | -- `replacement` parameter in SDAE doesn't force `on_the_fly` parameter, they are |
47 | | - independent. |
48 | | -- SDAE training has been changed in order to allow the use of LUA datasets, |
49 | | - improving- |
50 | | -- Solved bugs at Matrix template constructor which affects to `rewrap` lua |
51 | | - method, and to select method, which affects to `select` lua method. |
52 | | -- Configured Lua package path to be in /usr/ instead of /usr/local/. It is |
53 | | - the default place in Ubuntu. |
54 | | -- Replaced `cpp_class_binding_extension` by `class_extension` function, |
55 | | - adding Lua classes support besides to CPP binded classes. |
56 | | -- Modified `class` and `class_instance` functions to be more homogeneous |
57 | | - with C++ binding. |
58 | 85 | - Added SubAndDivNormalizationDataSet, applies a substraction and a division of |
59 | 86 | the feature vectors. |
60 | 87 | - Added stepDataset. |
| 88 | + |
| 89 | +### Bugs removed |
| 90 | + |
| 91 | +- Solved bug at `luabind_template.cc`, which introduced spurious segmentation |
| 92 | + faults due to Lua execution of garbage collection in the middle of a |
| 93 | + `lua_pushClassName`. |
61 | 94 | - Solved bug at glob function. |
| 95 | +- Solved bug at matrix iterators operator=. |
| 96 | +- Solved bug at method `matrix::best_span_iterator::setAtWindow`. Becaose of It |
| 97 | + the method didn't works when the matrix was a sub-matrix (slice) of other |
| 98 | + matrix. |
| 99 | +- Solved bugs at Matrix template constructor which affects to `rewrap` lua |
| 100 | + method, and to select method, which affects to `select` lua method. |
62 | 101 | - Added binarizer::init() to a binded static_constructor, it is needed to |
63 | 102 | execute init() before decode/encode double numbers, because of endianism. |
64 | 103 | - Solved bug at constString when extracting double numbers in binary format. |
65 | | -- Added max and min methods over a given dimension for `matrix`. |
66 | 104 | - MacOS compilation problems solved. |
| 105 | +- Solved problems with CUDA, it is working again. |
| 106 | +- Dynamic loading of C modules is working now. |
| 107 | + |
| 108 | +### C/C++ code changes |
| 109 | + |
| 110 | +- Added BIND_STRING_CONSTANT to luabind, so it is possible to export C string |
| 111 | + constants to Lua. |
| 112 | +- Removed warning of clang about unused variables, adding a new macro |
| 113 | + `UNUSED_VARIABLE(x)` defined in the header `utils/c_src/unused_variable.h`. |
67 | 114 | - Matrix fromString and toString Lua methods have been improved to write/read |
68 | 115 | directly from Lua string buffer, so the memory print has been reduced. |
69 | 116 | - The C++ routines to write and read files is generalized to work with streams, |
70 | 117 | under the BufferedStream template, and it is instantiated to FILE and gzFile |
71 | 118 | formats. |
72 | 119 | - Added sanity check to cross-entropy and multi-class cross-entropy loss |
73 | 120 | functions, to detect the use of non logarithmic outputs. |
74 | | -- Solved problems with CUDA, it is working again. |
75 | | -- Dynamic loading of C modules is working now. |
76 | | -- Added support for GZipped matrices load and save from C++, so functions |
77 | | - `matrix.savefile` and `matrix.loadfile` (and its correspondence for complex |
78 | | - numbers, double, int32, and char) were removed. Methods `matrix.fromFilename` |
79 | | - and `matrix.toFilename` accept '.gz' extension. |
80 | 121 |
|
81 | 122 | v0.2.1-beta relase |
82 | 123 | ------------------ |
|
0 commit comments