Skip to content

General purpose C++ library for managing discrete factor graphs

Notifications You must be signed in to change notification settings

imhutugui/Easy-Factor-Graph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

binaries_compilation binaries_compilation

Easy Factor Graph, aka EFG, is a general purpose c++ library for handling undirected graphical models. undirected graphical models are probabilistic models similar to bayesian networks, but offerring some more nice properties. Not familiar with this kind of concepts? Don't worry, have a look at the documentation in the doc folder before diving into the code ;). Random Fields as well as Conditional Random Fields are particular classes of undirected graphical models and can be easily created and trained using this library. undirected graphical models can be saved as xml or json files and later re-imported. The library contains some minimal functionalities to also perform training using the gradient descend approach.

EFG is completely cross platform: let CMake do all the work for you.

Contents

  • the documentation in ./doc explains both how to use EFG as well give some theoretical background
  • the sources of the library are contained in ./Lib
  • ./Samples contains 8 classes of examples, extensively showing how to use EFG

Compile

  • Configure and generate the project using CMake

    • check this tutorial (it is valid for any kind of IDE and not only VS) if you are not familiar
    • Some git submodules will be automatically initiated by the cmake functions
    • When setting the CMake LIB_OPT flag to ON, the libraries that are part of this project will be compiled as shared, otherwise as static. By default the static behaviour is set
    • some computations are speed up using a thread pool implemented in an external library. However, the compilation of such library might cause problems in some systems. Therefore, you can also decide to not use the thread pool (and not compile it at all) by selecting OFF for the CMake option THREAD_POOL_OPT
    • This library contains many different iterative tuners, that can be used to train any kind of factor graph. However, if you don't need to use it or you simply need to use a basic fixed step size gradient descend, you can disable the compilation of such advanced trainers by setting the CMake option ADVANCED_TRAINERS_OPT to OFF, which is set to ON by default.
  • Compile the library and the samples

  • You can also just download the compiled binaries (compiled in Release) of the library of the latest master commit here

What else?

If you have found this library useful, please find the time to leave a star :). Just before you go, be aware that Easy-Factor-Graph-GUI wraps this library as C++ backend to a nice graphical user interactive application:

What you should see when running the application

About

General purpose C++ library for managing discrete factor graphs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.5%
  • CMake 1.3%
  • Other 0.2%