Project details for SGD

Logo SGD 1.3

by leonbottou - January 31, 2009, 14:18:23 CET [ Project Homepage BibTeX Download ]

view ( today), download ( today ), 8 comments, 0 subscriptions

OverallWhole StarWhole StarWhole StarWhole StarEmpty Star
FeaturesWhole StarWhole StarWhole StarEmpty StarEmpty Star
UsabilityWhole StarWhole StarWhole StarWhole Star1/2 Star
DocumentationWhole StarWhole StarWhole StarWhole Star1/2 Star
(based on 2 votes)

The SGD package contains a stochastic gradient implementation of linear SVMs and linear CRFs. It demonstrate that a simple stochastic gradient descent is very competitive algorithm for such tasks. For instance, the SVMSGD program digests the RCV1 database in slightly more than one second, and the CRFSGD code runs close to ten times faster then the CRF++ Limited Storage BFGS optimizer.

Changes to previous version:

Initial Announcement on

BibTeX Entry: Download
Supported Operating Systems: Cygwin, Linux, Macosx, Windows
Data Formats: None
Tags: Large Scale, Svm, Crf, Stochastic Gradient Descent
Archive: download here


Leon Bottou (on September 23, 2008, 21:42:34)
Version 1.2 fixes bug in the preprocessing program.
Olivier Grisel (on January 26, 2009, 14:33:55)
Apparently the download link of this mloss entry points to the 1.1 version while the description mentions version 1.2.
Olivier Grisel (on January 26, 2009, 15:07:28)
Also, to build it with gcc 4.3.1 I had to explicitly add: #include \ in file lib/pstream.cpp to find the memcpy function definition and I also have the following (harmless) deprecation warning on the hash_map: g++ -g -O2 -Wall -I../lib -c -o preprocess.o preprocess.cpp In file included from /usr/include/c++/4.3/ext/hash_map:64, from preprocess.cpp:38: /usr/include/c++/4.3/backward/backward_warning.h:33:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
Leon Bottou (on January 30, 2009, 13:40:40)
According to posix and ansi c, function memcpy is defined in header . See . If your compilation needs memory.h, then something must be wrong with your compiler. Regarding the warning, it suggests to replace the gcc specific hash_map by an unordered_map. This is a c++0x extension. If you do the change, you'll get the following error: /usr/include/c++/4.3/c++0x_warning.h:36:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.
Olivier Grisel (on January 30, 2009, 23:27:24)
Indeed, but neither pstream.cpp nor pstream.h include string.h either. Including string.h instead of memory.h as mentioned previously makes it build as expected.
Leon Bottou (on January 31, 2009, 14:01:59)
Ooops. I thought that was already included in lib/pstream.cpp. Here is the patch (to be included in a next release) Index: pstream.cpp =================================================================== RCS file: /home/cvs/cvsroot/sgd/lib/pstream.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -4 -p -r1.4 -r1.5 --- pstream.cpp 2 Oct 2007 20:40:05 -0000 1.4 +++ pstream.cpp 31 Jan 2009 12:28:44 -0000 1.5 @@ -15,13 +15,14 @@ // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA -// $Id: pstream.cpp,v 1.4 2007/10/02 20:40:05 cvs Exp $ +// $Id: pstream.cpp,v 1.5 2009/01/31 12:28:44 cvs Exp $ #include "pstream.h" -#include +#include +#include pstreambuf* pstreambuf::open( const char *cmd, int open_mode)
Leon Bottou (on January 31, 2009, 14:18:42)
Updated in version 1.3
Leon Bottou (on October 11, 2011, 21:01:16)
Released sgd-2.0 featuring ASGD.

Leave a comment

You must be logged in to post comments.