Skip to content

Instantly share code, notes, and snippets.

@sanuj
Last active Aug 23, 2016
Embed
What would you like to do?
Submission for my GSoC 2016 project.

New Parameter Framework and Plugin Based Architecture for Shogun

Shogun is a machine learning toolbox, written in C++, which offers a large variety of machine learning algorithms and also supports high level languages like Python, Lua, Ruby etc. However, Shogun is not very easy to build and has lots of dependencies. Most users install Shogun to use some particular algorithms instead of all the algorithms that Shogun offers, which results in installation redundancies. Moreover, developers also have to build the entire library to test the new features which slows down the development. These problems can be solved by a plugin architecure. A new parameter framework is required to build the plugin architecture, and it also helps to improve and cleanup the API of Shogun.

Initially the goal was -

  1. To build the new parameter framework and plugin architecture.
  2. Migrate old code base to use the new parameter framework and plugin architecture.

By mid-term evaluation, we (my mentor and I) decided to only complete the first part of the goal due to the difficulty and time constraint of the project. I have successfully implemented the targeted parameter framework and plugin architecture with a couple of minor features remaining. We have also started using new tags parameter framework in old Shogun code but more work needs to be done here. I plan to continue contributing to Shogun by working on my second part of the original goal of this project.

tl;dr

Below, I have categorized these commits according to the project sub-topics.

Tag based parameter framework

Readme explaining this section will be added to Shogun's wiki soon. Pull request for this readme.

Plugin architecture

Readme explaining this section will be added to Shogun's wiki soon. Pull request for this readme.

Cookbooks

I also contributed cookbooks (API tutorials) as part of the project.

Cookbook data

Miscellaneous fixes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment