The Library
Help/Info
Current Release
Sourceforge
|
|
Last Modified:
Jul 28, 2010
|
|
Release notes
Release 17.30
Release date: Jul 28, 2010 Major Changes in this Release:
|
New Stuff:
Non-Backwards Compatible Changes:
Bug fixes:
- Fixed a compile-time bug in the matrix related to multiplication by
subm() expressions when the BLAS bindings were enabled.
- Fixed a bug in train_probabilistic_decision_function() which could
cause it to go into an infinite loop when working with very large
datasets.
Other:
|
Release 17.29
Release date: Jul 25, 2010 Major Changes in this Release:
|
New Stuff:
- Added a reference_wrapper implementation and modified the thread_function
slightly so it works with it.
- Added an implementation of kernel ridge regression.
- Added a simple newton search strategy for optimizing functions.
Non-Backwards Compatible Changes:
- If you have created your own matrix expressions then its possible this
new release will cause them to not compile.
Bug fixes:
- Fixed a bug in scale_columns. It said it didn't have any destructive aliasing
when in fact it destructively aliased its second argument.
- Fixed a bug in the random number generator where setting the seed back to ""
didn't result in the object going back to it's initial state.
Other:
- Reorganized the matrix expression code. It's now much simpler and the
library includes a new example program which details the steps needed to
create new matrix expressions.
- Changed the train_probabilistic_decision_function() routine so that it uses
a more numerically stable method to perform its maximum likelihood optimization.
- Added missing get/set epsilon functions to the RVM training objects.
I also changed the default epsilon from 0.0005 to 0.001.
|
Release 17.28
Release date: Jun 14, 2010 Major Changes in this Release:
|
New Stuff:
- Added the simplify_linear_decision_function() routines.
- Added the find_approximate_k_nearest_neighbors() function.
- Added the fill_lisf() function.
Non-Backwards Compatible Changes:
- Made the sample_pair have a default distance of infinity instead of
the max floating point value. I also reworked the graph creation functions
to make them a little more versatile. Now you can use infinite distances to
indicate that certain nodes are not connected at all.
- Changed the linear_manifold_regularizer to normalize the regularization
parameter by the sum of edge weights instead of the sum of edges.
Bug fixes:
- Fixed a bug in the timer_kernel_2 object. In certain rare cases it would
stop calling the action function and essentially shut down without being
told to do so.
Other:
- Made the reduced() and reduced2() functions more efficient.
- Many small usability improvements here and there.
|
Release 17.27
Release date: May 16, 2010 Major Changes in this Release:
|
New Stuff:
- Added the svm_c_ekm_trainer. It is a kernelized version of the fast
linear trainer svm_c_linear_trainer.
- Added the linear_manifold_regularizer and some supporting tools.
- Added the sum_rows(), sum_cols(), join_rows(), join_cols(), reshape(),
and pointer_to_matrix() functions.
- Added the randomly_subsample() function.
Non-Backwards Compatible Changes:
Bug fixes:
- Fixed some minor compile time bugs on certain older compilers.
Other:
- Updated the += and -= matrix operators to be a little more flexible. Now
if you try to apply them to a matrix of the wrong size it will automatically
resize the target matrix and just do a normal assignment.
- Removed the requirement that you load dng files into an image of the exact
pixel type that created the file. Now you can use any pixel type. I also
changed the code so that grayscale pixels with more than 16 bits get saved as
16 bit grayscale images instead of 8 bit images.
|
Release 17.26
Release date: Mar 07, 2010 Major Changes in this Release:
|
New Stuff:
- Added the solve_qp_using_smo() function to solve certain quadratic
programs.
- Added the oca object. It is an implementation of the Optimized Cutting
Plane Algorithm.
- Added a linear SVM trainer that uses oca.
- Added an implementation of the Histogram of Oriented Gradients algorithm
- Added a simple tool for making image pyramids
- Added the running_covariance object
- Added a simple linear (i.e. non-kernelized) kmeans implementation
- Added support for serializing dlib::int64
- Added some functions to load and save LIBSVM formatted data files.
Non-Backwards Compatible Changes:
- Changed the definition of dlib's sparse vector format to require
unsigned integral keys. Having this requirement is nice because it
creates a simple correspondence between dense vector index values and
sparse vector keys. The previous sparse vector definition was
excessively generic.
- Renamed sparse_vector::dot_product() to sparse_vector::dot() so that
both dense and sparse vectors have a global function with the same
name (i.e. dot()).
Bug fixes:
- Fixed a bug discovered by Mitchell Peabody. In some instances trying to
deserialize a std::vector would fail to compile.
Other:
- Increased the number of template arguments of the type_safe_union from 10
to 20. Additionally, I made the get_id() function public and renamed it
to get_type_id(). I also added a comment explaining the serialization
format of type_safe_union objects.
- Moved the optimization algorithms into their own page in the documentation.
- Added a Suggested Books page to the documentation
|
Release 17.25
Release date: Feb 05, 2010 Major Changes in this Release:
|
New Stuff:
- Added the ability to compute transformation matrices that map between
the representations used by different empirical_kernel_maps. Also added
the ability to compute projection error.
- Added the random_subset_selector object.
- Added the compute_mean_squared_distance() function.
Non-Backwards Compatible Changes:
- Modified the logger's hook implementation so that it uses a special stream
buffer instead of an std::ostringstream. This way logging doesn't cause
memory allocations. This breaks backwards compatibility with the previous
hook function API but only slightly. The new hook functions must take a
const char* instead of std::string.
- Added the const_ret_type typedef to the matrix_exp. It is now required that
all matrix expressions define this type. This enables the expressions to
return elements by constant reference when appropriate rather than always
returning by value.
Bug fixes:
- Fixed a bug in the matrix BLAS bindings that caused BLAS to return an invalid
argument error. The error occurred when general matrix multiply expressions
were transposed and didn't result in a square matrix. E.g. mat = trans(a*b)
where mat isn't square.
- Fixed potential compile time bugs in the comparison operators for futures.
- Added a missing check for division by zero in the SURF feature extractor.
- Modified the find_min_single_variable() function so that it is more
robust when working with functions that are made up of a bunch of
constant value strips. Previously, these kinds of functions could
cause the optimization to fail.
Other:
- Changed the regression test suite so that when it sets the logging level
it now sets it for all loggers. Not just ones that start with "test."
|
Release 17.24
Release date: Jan 04, 2010 Major Changes in this Release:
|
New Stuff:
- Added some MATLAB style thresholding relational operators to the matrix.
- Added the kernel_matrix() functions.
- Added the empirical_kernel_map object.
- Added the discriminant_pca object.
- Added the read_write_mutex object.
Non-Backwards Compatible Changes:
- Renamed the support_vectors member of the decision_function and
distance_function classes to basis_vectors. This name more appropriately
reflects how these two classes are used within the library.
- Changed the matrix_exp interface slightly. This could only impact users
who created their own custom matrix expressions. If you don't get a
compiler error then you don't have to worry about it.
Bug fixes:
- Fixed a minor error in the LBFGS code.
- Added a missing check for division by zero to the kcentroid, krls,
and linearly_independent_subset_finder classes. If someone added
the zero vector to them as the first training example a division by zero
could result.
- There were a few cases where the code wouldn't compile when using
matrices of complex numbers. There was also a runtime bug that triggered
when a rank 1 update was performed where one of the vectors was conjugated
and two or more transposes were used in certain positions. This bug
caused the wrong output to be computed if the BLAS bindings were used.
Both of these bugs have been fixed.
- Fixed a bug in the http server that affected cookies with certain kinds of
data. The result was invalid data being sent back to the web browser.
Other:
- Generally improved the BLAS bindings for the matrix object.
|
Release 17.23
Release date: Oct 20, 2009 Major Changes in this Release:
|
New Stuff:
- Added the pointer_to_column_vector function.
- Added the BOBYQA algorithm for derivative-free optimization.
- Added some functions to make it easy to do a line search on a function
of a single variable when derivatives are not available.
Non-Backwards Compatible Changes:
Bug fixes:
- Fixed a bug in the cpp pretty printer. It wasn't parsing
exponentiated numbers like 1e100 correctly.
Other:
- Added a model selection example program using grid search
and the new BOBYQA algorithm.
|
Release 17.22
Release date: Sep 10, 2009 Major Changes in this Release:
|
New Stuff:
- Added an implementation of the L-BFGS algorithm for unconstrained non-linear
optimization.
Non-Backwards Compatible Changes:
- Refactored the optimization code. It is now much more flexible but
this resulted in changes to the API. See the optimization example program
for a discussion of the new API.
Bug fixes:
- Fixed a bug in the get_filesystem_roots() roots function that
prevented it from compiling.
Other:
|
Release 17.21
Release date: Aug 30, 2009 Major Changes in this Release:
|
New Stuff:
- Added the ability to use a kernel cache to the batch_trainer object.
- svm_pegasos can now be configured to use two different lambda arguments
for use with unbalanced data.
- Added the reciprocal_max() and dot() matrix functions.
- Added the bgr_pixel and cv_image objects so that OpenCV images can
be easily used with dlib routines.
Non-Backwards Compatible Changes:
- I changed the batch trainers so that they always call clear() on the
trainer being used before training begins.
- Modified the svm_pegasos class so that the user can set independent lambda
parameters for each class. This breaks backwards compatibility with
the previous interface slightly and changes the serialization format
of this class.
- Split the vector_normalizer into a normal normalizer and a pca normalizer
version.
- The zoomable_region widget now uses exponential rather than linear
zoom scaling since this is much more pleasing to use. There is now
a new requirement on the zoom increment that it must be between 0
and 1.
Bug fixes:
- Fixed a bug in the cross_validate_trainer_threaded() function. It could
deadlock if more than about 10 folds were requested.
- Fixed the serialization functions for the normalized_function object.
They will now work with custom normalizer function objects.
- Fixed a minor bug in the zoomable_region::set_min_zoom_scale() function.
It didn't always end up zooming in a smooth sensible manner after this
function was called.
Other:
- Made the thread_function object more general. It can now handle
arbitrary functions of up to four arguments.
|
Old Release Notes
|