Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

Overview

Vowpal Wabbit

Linux build status Windows build status MacOS build status

codecov Total Alerts Gitter chat

This is the Vowpal Wabbit fast online learning code.

Why Vowpal Wabbit?

Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning. There is a specific focus on reinforcement learning with several contextual bandit algorithms implemented and the online nature lending to the problem well. Vowpal Wabbit is a destination for implementing and maturing state of the art algorithms with performance in mind.

  • Input Format. The input format for the learning algorithm is substantially more flexible than might be expected. Examples can have features consisting of free form text, which is interpreted in a bag-of-words way. There can even be multiple sets of free form text in different namespaces.
  • Speed. The learning algorithm is fast -- similar to the few other online algorithm implementations out there. There are several optimization algorithms available with the baseline being sparse gradient descent (GD) on a loss function.
  • Scalability. This is not the same as fast. Instead, the important characteristic here is that the memory footprint of the program is bounded independent of data. This means the training set is not loaded into main memory before learning starts. In addition, the size of the set of features is bounded independent of the amount of training data using the hashing trick.
  • Feature Interaction. Subsets of features can be internally paired so that the algorithm is linear in the cross-product of the subsets. This is useful for ranking problems. The alternative of explicitly expanding the features before feeding them into the learning algorithm can be both computation and space intensive, depending on how it's handled.

Visit the wiki to learn more.

Getting Started

For the most up to date instructions for getting started on Windows, MacOS or Linux please see the wiki. This includes:

Issues
  • C# refactoring, memory leak fixes, general goodness,...

    C# refactoring, memory leak fixes, general goodness,...

    fixed Runtime library mismatch between zlib, libvw, vw.exe, VowpalWabbitCore.dll (CLR),... by using zlib/boost nuget provided msbuild targets included Visual Leak Detector for memory leak detection on windows refactored C# API to allow users to dynamically constructor serializers based on alternate descriptions (not just on static annotations) string marshalling is compatible to command line (either escaping or splitting) schema based pre-hashing: if hash can be determine from schema it's only generated once and re-used for each example. added type extension API for marshalling allow user to generate native and string examples in parallel in both debug and release keep marshalling expression tree for debugging refactored marshalling expression tree generation to improve readability added sweeping helper improved C# label parsing extensibility added assembly signing fixed memory leaks in C# usage of VW fixed model hashing/reload interaction fixed handling of empty line examples within set of action dependent features fixed order issue when predicting ADF examples containing empty action dependent features fixed default namespace incompatibility (space vs. 0) improved RunTests to C# test wrapping (detects inter-test dependencies and input files) unit tests are run in test/ folder, thus no need copy all input files added user-supplied model id support

    opened by eisber 60
  • VWRegressor provides very different performance for  loss_function = 'quantile' , quantile_tau = 0.5 and loss_function = 'squared'

    VWRegressor provides very different performance for loss_function = 'quantile' , quantile_tau = 0.5 and loss_function = 'squared'

    Describe the bug

    VWRegressor provides very different performance for loss_function = 'quantile' , quantile_tau = 0.5 and loss_function = 'squared'

    loss_function = 'squared' - provides very GOOD low MAE loss_function = 'quantile' , quantile_tau = 0.5 - provides bad high MAE

    data is mixture categorical data and continues data : 600 rows like this

    image

    To Reproduce

            if 1:
                model = VWRegressor(convert_to_vw = False ,normalized = True, 
                                                               passes = passes, 
                                                                power_t = 0.5, #1.0,
                                                               readable_model = 'my_VW.model' , cache_file =  'my_VW.cache' ,
                                                               learning_rate = 2.3 , l2 = l2, l1=l1,
                                                               quadratic= 'CC' , cubic = 'CCC',
                                                                loss_function = 'quantile' , quantile_tau = 0.5)
                q=0
            else:
                model = VWRegressor(convert_to_vw = False ,normalized = True, 
                                                          passes = passes, 
                                                           power_t = 0.5, #1.0,
                                                          readable_model = 'my_VW.model' , cache_file =  'my_VW.cache' ,
                                                          learning_rate = 2.1, loss_function = 'squared' , l2 = l2, l1=l1,
                                                          quadratic= 'CC' , cubic = 'CCC' )
    

    Expected behavior

    my guess MAE for loss_function = 'quantile' , quantile_tau = 0.5 and loss_function = 'squared' should be very similar

    in addition loss_function = 'quantile' , quantile_tau = 0.9 and loss_function = 'quantile' , quantile_tau = 0.1 gives very wide confidence intervals - even no sense confidence intervals

    Observed Behavior

    How did VW behave? Please include any stack trace, log messages or crash logs.

    Environment

    What version of VW did you use? latest OS - windows 10

    Additional context

    do you have code example where VWRegressor loss_function = 'quantile' , quantile_tau = 0.9 and loss_function = 'quantile' , quantile_tau = 0.1

    Question 
    opened by Sandy4321 56
  • JNI Layer throws Exceptions when close method is called in parallel ON DIFFERENT MODELS

    JNI Layer throws Exceptions when close method is called in parallel ON DIFFERENT MODELS

    Problem

    In the JNI layer, when multiple passes are enabled (> 1) and an attempt is made to close separate models in parallel, exceptions can be thrown. This is true even though each model has it's own lock to guard all accesses to the native code paths. Only a global lock around calls to the model close methods seems to avoid this issue.

    I'm looking for help on identifying if any critical sections of the C code that can be guarded by a lock to avoid thread-safety issues. I'm not asking for the C code to lock. I just want help trying to figure out where to put the locks in the Java code that wraps the C code.

    Scope

    This seems to be in PR #1291 but was not fixed with PR #1295

    Discussion

    From empirical testing, it appears one of these lines seems to be the problem. I am wondering if any of these use global state. I am trying to figure out if we can lock only over a short critical section to avoid thread-safety issues.

    1. adjust_used_index(*vwInstance);
    2. vwInstance->do_reset_source = true;
    3. VW::start_parser(*vwInstance);
    4. LEARNER::generic_driver(*vwInstance);
    5. VW::end_parser(*vwInstance);

    Previous Conversation

    In PR #1295 there was the following conversation:

    @JohnLangford

    There should be zero shared state between multiple created VW objects. Is that what it's doing? (Creating multiple distinct VW objects?)

    @deaktator

    @JohnLangford. It looks like just one VW object. Each Java call does the following on the C side:

    vw* vwInstance = VW::initialize(env->GetStringUTFChars(command, NULL);

    @JohnLangford

    A single VW object can not be operated on in multiple threads because the code inside VW is not thread safe. If you want to have a model which is shared by multiple threads, you set this up more explicitly by initializing a new VW object with an existing model.

    @deaktator

    Hey @JohnLangford. We take care of multi-threaded access to VW by locking anywhere that requires access to the C code. The thread-safety issues I encountered before were on an incomplete version of the code that locked in the wrong place. When I run the tests in parallel, they seem to work just fine now. I ran them a bunch of times with forking in the tests and didn't see any issues.

    Tracking Down What's Happening

    It appears @jon-morra-zefr pretty much copied the C# code for multiple passes, so this seems like it might apply to C# as well. Both C# and JNI C++ code appear below as well as the calling code that blows up.

    I've seen a bunch of different errors that occur at the same spot. invalidated cache, malformed LDF feature exceptions, etc.

    Example Code That triggers exceptions

    // Doing this many times in parallel with no locks causes problems.
    
    	val vwJNI = VWLearners.create[VWTypedLearner[_]](vwLearnString)
    	// Learning in here using   vwJNI.learn
    
    	// PROBLEM AREA:
    	lock.lock()     // <== NEED GLOBAL LOCKING OR EXCEPTIONS THROWN
    	vwJNI.close()
    	lock.unlock()   // <== NEED GLOBAL LOCKING OR EXCEPTIONS THROWN
    

    Similarity of the C# and JNI C++ Code

    C# Code: vowpal_wabbit/cs/cli/vowpalwabbit.cpp

    void VowpalWabbit::RunMultiPass()
    { if (m_vw->numpasses > 1)
      { try
        { adjust_used_index(*m_vw);
          m_vw->do_reset_source = true;
          VW::start_parser(*m_vw);
          LEARNER::generic_driver(*m_vw);
          VW::end_parser(*m_vw);
        }
        CATCHRETHROW
      }
    }
    

    JNI C++ Code: vowpal_wabbit/java/src/main/c++/vowpalWabbit_learner_VWLearners.cc

    JNIEXPORT void JNICALL Java_vowpalWabbit_learner_VWLearners_performRemainingPasses(JNIEnv *env, jclass obj, jlong vwPtr)
    { try
      { vw* vwInstance = (vw*)vwPtr;
        if (vwInstance->numpasses > 1)
          { adjust_used_index(*vwInstance);
            vwInstance->do_reset_source = true;
            VW::start_parser(*vwInstance);
            LEARNER::generic_driver(*vwInstance);
            VW::end_parser(*vwInstance);
          }
      }
      catch(...)
      { rethrow_cpp_exception_as_java_exception(env);
      }
    }
    

    Any thoughts?

    Lang: Java Bug In Progress Priority: Medium 
    opened by ryan-deak-zefr 50
  • Continuous actions

    Continuous actions

    This is the preliminary PR for continuous actions.

    This includes, cats_tree (continuous action tree with smoothing) algorithm, converting between PMF (discrete) to PDF (continuous) distribution, sampling form continuous PDF, etc.

    The code is for the paper available at https://arxiv.org/pdf/2006.06040.pdf

    We will add more details.

    opened by mmajzoubi 47
  • Bug fixes

    Bug fixes

    Fixed NRE on empty hashes Skip model load/initialize when seeding from in-memory model Fixed progressive validation in Azure trainer Includes mixed JSON string and JSON direct support Includes native C++ JSON parsing

    opened by eisber 47
  • Try coveralls

    Try coveralls

    Added 3 new make targets: vw_gcov, library_example_gcov, test_gcov which build vw and the examples with GCOV support, then run tests. This allows coveralls to analyze test coverage in the source code, but slows the tests down signifigantly. I also edited the travis .yml file to upload the results to coveralls.io and added the badge to the readme.

    Someone will need to setup a coveralls account for the main VW project and point the badge in the readme to that badge. Currently the coveralls badge points only to my fork.

    opened by zachmayer 47
  • Pandas to vw text format

    Pandas to vw text format

    1. Overview

    The goal of this PR is to fix the issue #2308.

    The PR introduces a new class DFToVW in vowpalwabbit.pyvw that takes as input the pandas.DataFrame and special types (SimpleLabel, Feature, Namespace) that specify the desired VW conversion.

    These classes make extensive use of a class Col that refers to a given column in the user specified dataframe.

    A simpler interface DFtoVW.from_colnames also be used for the simple use-cases. The main benefit is that the user need not use the specific types.


    Below are some usages of this class. They all rely on the following pandas.DataFrame called df :

      house_id  need_new_roof  price  sqft   age  year_built
    0      id1              0   0.23  0.25  0.05        2006
    1      id2              1   0.18  0.15  0.35        1976
    2      id3              0   0.53  0.32  0.87        1924
    

    2. Simple usage using DFtoVW.from_colnames

    Let say we want to build a VW dataset with the target need_new_roof and the feature age :

    from vowpalwabbit.pyvw import DFtoVW
    conv = DFtoVW.from_colnames(y="need_new_roof", x=["age", "year_built"], df=df)
    

    Then we can use the method process_df:

    conv.process_df()
    

    that outputs the following list:

    ['0 | 0.05 2006', '1 | 0.35 1976', '0 | 0.87 1924']
    

    This list can then directly be consumed by the method pyvw.model.learn.

    3. Advanced usages using default constructor

    The class DFtoVW also allow the following patterns in its default constructor :

    • tag
    • (named) namespaces, with scaling factor
    • (named) features, with constant feature possible

    To use these more complex patterns we need to import them using:

    from vowpalwabbit.pyvw import SimpleLabel, Namespace, Feature, Col
    

    3.1. Named namespace with scaling, and named feature

    Let's create a VW dataset that include a named namespace (with scaling) and a named feature:

    conv = DFtoVW(
            df=df,
            label=SimpleLabel(Col("need_new_roof")),
            namespaces=Namespace(name="Imperial", value=0.092, features=Feature(value=Col("sqft"), name="sqm"))
            )
    conv.process_df()
    

    which yields:

    ['0 |Imperial:0.092 sqm:0.25',
     '1 |Imperial:0.092 sqm:0.15',
     '0 |Imperial:0.092 sqm:0.32']
    

    3.2. Multiple namespaces, multiple features, and tag

    Let's create a more complex example with a tag and multiples namespaces with multiples features.

    conv = DFtoVW(
            df=df, 
            label=SimpleLabel(Col("need_new_roof")),
            tag=Col("house_id"),
            namespaces=[
                    Namespace(name="Imperial", value=0.092, features=Feature(value=Col("sqft"), name="sqm")),
                    Namespace(name="DoubleIt", value=2, features=[Feature(value=Col("price")), Feature(Col("age"))])
                    ]
            )
    conv.process_df()
    

    which yields:

    ['0 id1|Imperial:0.092 sqm:0.25 |DoubleIt:2 0.23 0.05',
     '1 id2|Imperial:0.092 sqm:0.15 |DoubleIt:2 0.18 0.35',
     '0 id3|Imperial:0.092 sqm:0.32 |DoubleIt:2 0.53 0.87']
    

    4. Implementation details

    • The class DFtoVW and the specific types are located in vowpalwabbit/pyvw.py. The class only depends on the pandas module.
    • the code includes docstrings
    • 8 tests are included in tests/test_pyvw.py

    5. Extensions

    • This PR does not yet handle multilines and more complex label types.
    • To convert very large dataset that can't fit in RAM, one can make use of the pandas import option chunksize and process each chunk at a time. I could also implement this functionnality directly in the class using generator. The generator would then be consumed by either a VW learning interface or could be written to external file (for conversion purpose only).
    opened by etiennekintzler 43
  • Test don't pass on Mac OS 10.10

    Test don't pass on Mac OS 10.10

    Mac os 10.10 and boost version boost-1.58.0

    gcc --version Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) Target: x86_64-apple-darwin14.0.0 Thread model: posix

    Get some warnings and test 16 don't pass.

    Here is full log:

    make
    cd vowpalwabbit; /Library/Developer/CommandLineTools/usr/bin/make -j 4 things
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c main.cc -o main.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c global_data.cc -o global_data.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c parse_regressor.cc -o parse_regressor.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c parse_primitives.cc -o parse_primitives.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c unique_sort.cc -o unique_sort.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c cache.cc -o cache.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c rand48.cc -o rand48.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c simple_label.cc -o simple_label.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c multiclass.cc -o multiclass.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c oaa.cc -o oaa.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c multilabel_oaa.cc -o multilabel_oaa.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c boosting.cc -o boosting.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c ect.cc -o ect.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c autolink.cc -o autolink.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c binary.cc -o binary.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c lrq.cc -o lrq.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c cost_sensitive.cc -o cost_sensitive.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c multilabel.cc -o multilabel.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c label_dictionary.cc -o label_dictionary.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c csoaa.cc -o csoaa.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c cb.cc -o cb.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c cb_adf.cc -o cb_adf.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c cb_algs.cc -o cb_algs.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search.cc -o search.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search_meta.cc -o search_meta.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search_sequencetask.cc -o search_sequencetask.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search_dep_parser.cc -o search_dep_parser.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search_hooktask.cc -o search_hooktask.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search_multiclasstask.cc -o search_multiclasstask.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search_entityrelationtask.cc -o search_entityrelationtask.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c search_graph.cc -o search_graph.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c parse_example.cc -o parse_example.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c scorer.cc -o scorer.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c network.cc -o network.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c parse_args.cc -o parse_args.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c accumulate.cc -o accumulate.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c gd.cc -o gd.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c learner.cc -o learner.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c lda_core.cc -o lda_core.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c gd_mf.cc -o gd_mf.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c mf.cc -o mf.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c bfgs.cc -o bfgs.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c noop.cc -o noop.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c print.cc -o print.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c example.cc -o example.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c parser.cc -o parser.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c loss_functions.cc -o loss_functions.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c sender.cc -o sender.o
    parser.cc:452:26: warning: 'daemon' is deprecated: first deprecated in OS X 10.5
          [-Wdeprecated-declarations]
          if (!all.active && daemon(1,1))
                             ^
    /usr/include/stdlib.h:267:6: note: 'daemon' has been explicitly marked
          deprecated here
    int      daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPR...
             ^
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c nn.cc -o nn.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c bs.cc -o bs.o
    1 warning generated.
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c cbify.cc -o cbify.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c topk.cc -o topk.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c stagewise_poly.cc -o stagewise_poly.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c log_multi.cc -o log_multi.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c active.cc -o active.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c kernel_svm.cc -o kernel_svm.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c best_constant.cc -o best_constant.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c ftrl.cc -o ftrl.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c svrg.cc -o svrg.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c lrqfa.cc -o lrqfa.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c interact.cc -o interact.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c comp_io.cc -o comp_io.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c interactions.cc -o interactions.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c vw_exception.cc -o vw_exception.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c allreduce.cc -o allreduce.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o active_interactor active_interactor.cc
    ar rcs liballreduce.a allreduce.o
    ar rcs libvw.a hash.o global_data.o io_buf.o parse_regressor.o parse_primitives.o unique_sort.o cache.o rand48.o simple_label.o multiclass.o oaa.o multilabel_oaa.o boosting.o ect.o autolink.o binary.o lrq.o cost_sensitive.o multilabel.o label_dictionary.o csoaa.o cb.o cb_adf.o cb_algs.o search.o search_meta.o search_sequencetask.o search_dep_parser.o search_hooktask.o search_multiclasstask.o search_entityrelationtask.o search_graph.o parse_example.o scorer.o network.o parse_args.o accumulate.o gd.o learner.o lda_core.o gd_mf.o mf.o bfgs.o noop.o print.o example.o parser.o loss_functions.o sender.o nn.o bs.o cbify.o topk.o stagewise_poly.o log_multi.o active.o kernel_svm.o best_constant.o ftrl.o svrg.o lrqfa.o interact.o comp_io.o interactions.o vw_exception.o
    /usr/bin/g++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o vw main.o -L. -l vw -l allreduce -L /usr/local/lib -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
    cd cluster; /Library/Developer/CommandLineTools/usr/bin/make
    /usr/bin/clang++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -c spanning_tree.cc -o spanning_tree.o
    spanning_tree.cc:161:9: warning: 'daemon' is deprecated: first deprecated in OS
          X 10.5 [-Wdeprecated-declarations]
        if (daemon(1,1))
            ^
    /usr/include/stdlib.h:267:6: note: 'daemon' has been explicitly marked
          deprecated here
    int      daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPR...
             ^
    1 warning generated.
    /usr/bin/clang++ -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o spanning_tree spanning_tree.o 
    cd library; /Library/Developer/CommandLineTools/usr/bin/make things
    /usr/bin/g++ -g -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o ezexample_predict ezexample_predict.cc -L ../vowpalwabbit -l vw -l allreduce -L /usr/local/lib -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
    /usr/bin/g++ -g -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o ezexample_train ezexample_train.cc -L ../vowpalwabbit -l vw -l allreduce -L /usr/local/lib -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
    /usr/bin/g++ -g -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o library_example library_example.cc -L ../vowpalwabbit -l vw -l allreduce -L /usr/local/lib -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
    /usr/bin/g++ -g -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o recommend recommend.cc -L ../vowpalwabbit -l vw -l allreduce -L /usr/local/lib -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
    /usr/bin/g++ -g -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o gd_mf_weights gd_mf_weights.cc -L ../vowpalwabbit -l vw -l allreduce -L /usr/local/lib -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
    /usr/bin/g++ -g -std=c++0x   -D__extern_always_inline=inline -Wall -pedantic -O3 -fomit-frame-pointer -fno-strict-aliasing  -D_FILE_OFFSET_BITS=64 -DNDEBUG -I /usr/local/include  -fPIC  -o test_search test_search.cc -L ../vowpalwabbit -l vw -l allreduce -L /usr/local/lib -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
    
    make test
    cd vowpalwabbit; /Library/Developer/CommandLineTools/usr/bin/make -j 4 things
    make[1]: Nothing to be done for `things'.
    cd library; /Library/Developer/CommandLineTools/usr/bin/make things
    make[1]: Nothing to be done for `things'.
    vw running test-suite...
    (cd test && ./RunTests -d -fe -E 0.001 ../vowpalwabbit/vw ../vowpalwabbit/vw)
    Testing on: hostname=air-mac OS=darwin
    Testing vw: ../vowpalwabbit/vw
    Testing lda: ../vowpalwabbit/vw
    RunTests: '-D' to see any diff output
    RunTests: '-o' to force overwrite references
    RunTests: test 1: stderr OK
    RunTests: test 2: stderr OK
    RunTests: test 2: predict OK
    RunTests: test 3: stderr OK
    RunTests: test 4: stdout OK
    RunTests: test 4: stderr OK
    RunTests: test 5: stderr OK
    RunTests: test 6: stderr OK
    RunTests: test 6: minor (<0.001) precision differences ignored
    RunTests: test 6: predict OK
    RunTests: test 7: stderr OK
    RunTests: test 8: stderr OK
    RunTests: test 8: minor (<0.001) precision differences ignored
    RunTests: test 8: predict OK
    RunTests: test 9: stderr OK
    RunTests: test 9: predict OK
    RunTests: test 10: stderr OK
    RunTests: test 10: predict OK
    RunTests: test 11: stderr OK
    RunTests: test 12: stderr OK
    RunTests: test 13: stderr OK
    RunTests: test 14: stdout OK
    RunTests: test 14: minor (<0.001) precision differences ignored
    RunTests: test 14: stderr OK
    RunTests: test 15: stdout OK
    RunTests: test 15: stderr OK
    RunTests: test 16: stdout OK
    --- diff -u --minimal train-sets/ref/rcv1_small.stderr stderr.tmp
    --- train-sets/ref/rcv1_small.stderr    2015-08-13 00:22:20.000000000 +0300
    +++ stderr.tmp  2015-08-13 00:33:33.000000000 +0300
    @@ -17,7 +17,7 @@
      5 0.47879     0.00006     0.00617      0.595892   0.183063                            0.47184     1.00000   
      6 0.47750     0.00000     0.00221      0.703360   0.403715                            0.68626     1.00000   
      7 0.47680     0.00000     0.00038      0.588395   0.175459                            0.08911     1.00000   
    - 8 0.47671     0.00000     0.00002      0.568445   0.136827                            0.00444     1.00000   
    + 8 0.47671     0.00000     0.00002      0.568443   0.136827                            0.00444     1.00000   
    
     finished run
     number of examples = 8000
    RunTests: test 16: FAILED: ref(train-sets/ref/rcv1_small.stderr) != stderr(stderr.tmp)
        cmd: ../vowpalwabbit/vw -k -c -d train-sets/rcv1_small.dat --loss_function=logistic -b 20 --bfgs --mem 7 --passes 20 --termination 0.001 --l2 1.0 --holdout_off
    
    
    opened by mrgloom 43
  • Trying to upgrade from vw-jni-8.2.0 to something close to vw-jni-8.4.1-SNAPSHOT

    Trying to upgrade from vw-jni-8.2.0 to something close to vw-jni-8.4.1-SNAPSHOT

    Using VW 8.4.0 installed with brew I created a simple test set initializing VW with

    $ vw --csoaa 10  -b 24  --l2 0.0  -l 0.1  -c -k --passes 100  -f /Users/pat/big-data/harness/models/test_resource  --save_resume
    

    Then I paste examples in:

    0:0.0 1:1.0 | user_user_2 testGroupId_1 
    0:0.0 1:1.0 | user_user_2 testGroupId_1 
    0:0.0 1:1.0 | user_user_2 testGroupId_1 
    0:0.0 1:1.0 | user_user_2 testGroupId_1 
    0:1.0 1:0.0 | user_user_1 testGroupId_1 
    0:1.0 1:0.0 | user_user_1 testGroupId_1 
    0:1.0 1:0.0 | user_user_1 testGroupId_1 
    0:1.0 1:0.0 | user_user_1 testGroupId_1 
    save_
    

    at the save_ the file Users/pat/big-data/harness/models/test_resource is updated—all is well.

    Using the last available JNI binary wrapper for 8.2.0 doing the same thing from Java does not update the model file. I'm not running in --quiet mode and there is no complaint from VW.

    The save_ pseudo example does apparently work for 8.2.0 since another user is using it in CLI and daemon mode.

    Is this feature not supported with JNI?

    On the advice of @arielf it appears I need something like vw-jni-8.4.1-SNAPSHOT so trying to build for dev machine (MBP) and deploy machine (ubuntu). Dev machine first.

    opened by pferrel 41
  • Python wrapper installation fails

    Python wrapper installation fails

    I'm not able to pip install vowpalwabbit to install the python wrapper. I don't know enough to understand why it's failing, but I thought it might be worth bringing to someone's attention.

    I'm on OSX and using an Anaconda environment. I installed vowpal wabbit from homebrew.

    Here's my traceback:

    Collecting vowpalwabbit
      Using cached vowpalwabbit-8.2.0.tar.gz
    Building wheels for collected packages: vowpalwabbit
      Running setup.py bdist_wheel for vowpalwabbit ... error
      Complete output from command /Users/vvvvv/anaconda/envs/trendrank/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-build-74A7hN/vowpalwabbit/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/tmp5FosrOpip-wheel- --python-tag cp27:
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.5-x86_64-2.7
      creating build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
      copying vowpalwabbit/__init__.py -> build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
      copying vowpalwabbit/pyvw.py -> build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
      copying vowpalwabbit/sklearn_vw.py -> build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
      running egg_info
      writing vowpalwabbit.egg-info/PKG-INFO
      writing top-level names to vowpalwabbit.egg-info/top_level.txt
      writing dependency_links to vowpalwabbit.egg-info/dependency_links.txt
      warning: manifest_maker: standard file '-c' not found
    
      reading manifest file 'vowpalwabbit.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files matching '*.o' found anywhere in distribution
      warning: no previously-included files matching '*.exe' found anywhere in distribution
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      writing manifest file 'vowpalwabbit.egg-info/SOURCES.txt'
      running build_ext
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "/private/var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-build-74A7hN/vowpalwabbit/setup.py", line 184, in <module>
          tests_require=['tox'],
    
    [...]
    
        File "/private/var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-build-74A7hN/vowpalwabbit/setup.py", line 38, in find_boost
          raise Exception('Could not find boost python library')
      Exception: Could not find boost python library
    
      ----------------------------------------
      Failed building wheel for vowpalwabbit
      Running setup.py clean for vowpalwabbit
    Failed to build vowpalwabbit
    Installing collected packages: vowpalwabbit
      Running setup.py install for vowpalwabbit ... error
        Complete output from command /Users/vvvvv/anaconda/envs/trendrank/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-build-74A7hN/vowpalwabbit/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-4GRRiq-record/install-record.txt --single-version-externally-managed --compile:
        running install
        running build
        running build_py
        creating build
        creating build/lib.macosx-10.5-x86_64-2.7
        creating build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
        copying vowpalwabbit/__init__.py -> build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
        copying vowpalwabbit/pyvw.py -> build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
        copying vowpalwabbit/sklearn_vw.py -> build/lib.macosx-10.5-x86_64-2.7/vowpalwabbit
        running egg_info
        creating vowpalwabbit.egg-info
        writing vowpalwabbit.egg-info/PKG-INFO
        writing top-level names to vowpalwabbit.egg-info/top_level.txt
        writing dependency_links to vowpalwabbit.egg-info/dependency_links.txt
        writing manifest file 'vowpalwabbit.egg-info/SOURCES.txt'
        warning: manifest_maker: standard file '-c' not found
    
        reading manifest file 'vowpalwabbit.egg-info/SOURCES.txt'
        reading manifest template 'MANIFEST.in'
        warning: no files found matching '*' under directory 'src'
        warning: no previously-included files matching '*.o' found anywhere in distribution
        warning: no previously-included files matching '*.exe' found anywhere in distribution
        warning: no previously-included files matching '*.pyc' found anywhere in distribution
        writing manifest file 'vowpalwabbit.egg-info/SOURCES.txt'
        running build_ext
        make: *** No rule to make target `clean'.  Stop.
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/private/var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-build-74A7hN/vowpalwabbit/setup.py", line 184, in <module>
            tests_require=['tox'],
    
    [...]
    
        subprocess.CalledProcessError: Command '['make', 'clean']' returned non-zero exit status 2
    
        ----------------------------------------
    Command "/Users/vvvvv/anaconda/envs/trendrank/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-build-74A7hN/vowpalwabbit/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-4GRRiq-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/vx/n21m77w12nd0tb9xwhfcgd75gpm86h/T/pip-build-74A7hN/vowpalwabbit/
    
    opened by vaer-k 41
  • Accept multiline examples in the JNI interface

    Accept multiline examples in the JNI interface

    This is a pretty major refactoring of the JNI layer. The impetus for this refactoring was the ability to accept multiline examples but it lead to a much larger change. The biggest change is the decoupling of the return type and the prediction function. This proved necessary to support all the different ways to extract data with --cb_explore.

    I am going to go over this in detail with @deaktator offline, so @JohnLangford let's hold off on merging this for now. If anyone else has any comments at this time they are certainly welcome.

    opened by jmorra 40
  • ci: Build and test with AddressSanitizer

    ci: Build and test with AddressSanitizer

    • Add Cmake options for building with AddressSanitizer
    • Add a CI job that compiles and runs tests with AddressSanitizer
    • Remove all WindowsSetPath stuff from c_wrapper test. This seems to get rid of the missing DLL error.

    As of now, a heap use-after-free error occurs in 3 of the tests, all run on Linux only. The bug will be fixed in the .NET Core PR.

    opened by byronxu99 0
  • fix: [automl] multiple fixes

    fix: [automl] multiple fixes

    • SD state shared across when using l1, fixed
    • default_value is not initializing the vars correctly, fixed
    • apply CCB transformation inside automl for now
    opened by lalo 0
  • The MSVC team recently test VowpalWabbit project failed with 'Exit code 0xc0000135' when run

    The MSVC team recently test VowpalWabbit project failed with 'Exit code 0xc0000135' when run "vw_c_wrapper_test" test, on release and debug ASAN mode, Windows_amd64

    Describe the bug

    Hi All,

    VowpalWabbit failed with 'Exit code 0xc0000135' when run "vw_c_wrapper_test" test, on release and debug configuration, Windows_amd64. Could you please help look at this issue or provide some workarounds? Thanks in advance.

    Error message: Test project F:/gitP/VowpalWabbit/vowpal_wabbit/build_amd64 Start 1: vw_c_wrapper_test 1/6 Test #1: vw_c_wrapper_test ................Exit code 0xc0000135 ***Exception: 0.05 sec

    Start 2: vw_config_test
    

    2/6 Test #2: vw_config_test ................... Passed 0.17 sec Start 3: vw_core_test 3/6 Test #3: vw_core_test ..................... Passed 0.81 sec Start 4: vw_explore_test 4/6 Test #4: vw_explore_test .................. Passed 0.31 sec Start 5: vw_io_test 5/6 Test #5: vw_io_test ....................... Passed 0.15 sec Start 6: vw_slim_test 6/6 Test #6: vw_slim_test ..................... Passed 4.92 sec

    83% tests passed, 1 tests failed out of 6

    Label Time Summary: VWTestList = 6.40 sec*proc (6 tests)

    Total Test time (real) = 6.43 sec

    The following tests FAILED: 1 - vw_c_wrapper_test (Exit code 0xc0000135 ) Errors while running CTest

    How to reproduce

    1. git clone (https://github.com/VowpalWabbit/vowpal_wabbit) F:\gitP\VowpalWabbit
    2. git clone https://github.com/Microsoft/vcpkg F:\gitP\Microsoft
    3. set VSCMD_SKIP_SENDTELEMETRY=1 & "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
    4. cd F:\gitP\Microsoft\vcpkg
    5. bootstrap-vcpkg.bat 2>&1
    6. vcpkg.exe install --recurse zlib boost-system boost-program-options boost-test boost-align boost-foreach boost-math boost-python python3 flatbuffers --triplet x64-windows --clean-after-build 2>&1
    7. set CL= /fsanitize=address /GS- /wd5072 & set LINK= /InferASanLibs /incremental:no /debug
    8. mkdir&cd F:\gitP\VowpalWabbit\vowpal_wabbit\build_amd64
    9. cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.18362.0 -DCMAKE_BUILD_TYPE=Release -DUSE_LATEST_STD=ON -Dvw_BUILD_NET_FRAMEWORK=OFF -DBUILD_FLATBUFFERS=OFF -DCMAKE_TOOLCHAIN_FILE=F:\gitP\Microsoft\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. 2>&1
    10. msbuild /m /p:Platform=x64 /p:Configuration=Release vowpal_wabbit.sln /t:Rebuild /p:BuildInParallel=true 2>&1
    11. ctest --build-config Release --output-on-failure 2>&1

    Version

    git commit : b896f6b

    OS

    Windows

    Language

    C++

    Additional context

    test.log test.log.2.out.txt

    Bug 
    opened by rachelhe123 3
  • feat: native CSV parsing

    feat: native CSV parsing

    Previous reviews: https://github.com/HollowMan6/vowpal_wabbit/pull/1

    A project of Reinforcement Learning Open Source Fest 2022.

    Tutorial CSV

    Iris.csv Iris.txt iris2.csv

    Build CSV parser with cmake option -DBUILD_CSV=On

    vw -d Iris.txt
    vw --csv -d Iris.csv
    vw --csv -d Iris2.csv  --named_labels Setosa,Versicolor,Virginica --oaa 3
    

    Summary of features supported and tested:

    1. Allows specifying the CSV field separator by --csv_separator, default is ,, but " | or : are reserved and not allowed to use, since the double quote (") is for escape, vertical bar(|) for separating the namespace and feature names, : can be used in labels.
    2. For each separated field, auto remove the outer double-quotes of a cell when it pairs. --csv_separator symbols that appeared inside the double-quoted cells are not considered as a separator but a normal string character.
    3. Double-quotes that appear at the start and end of the cell will be considered to enclose fields. Other quotes that appear elsewhere and out of the enclose fields will have no special meaning. (This is also how Microsoft Excel parses.)
    4. If double-quotes are used to enclose fields, then a double-quote appearing inside a field must be escaped by preceding it with another double quote, and will remove that escape symbol during parsing.
    5. Use header line for feature names (and possibly namespaces) / specify label and tag using _label and _tag by default. For each separated field in header except for tag and label, it may contain namespace and feature name separated by namespace separator, vertical bar(|).
    6. --csv_header to override the CSV header by providing (namespace, | and) feature name separated with ,. By default, CSV files are assumed to have a header with feature and/or namespaces names in the CSV first line. You can override it by specifying --csv_header. Combined with --csv_no_file_header, we assume that there is no header in the CSV file and under such condition specifying --csv_header for the header is a must.
    7. If the number of the separated fields for current parsing line is greater than the header, an error will be thrown.
    8. Trim the field for ASCII "white space"(\r\n\f\v) as well as some UTF-8 BOM characters(\xef\xbb\xbf) before separation.
    9. If no namespace is separated, will use empty namespace.
    10. Separator supports using \t to represent tabs. Otherwise, if assigning more than one character, an error will be thrown.
    11. Directly read the label as string, interpret it using the VW text label parser.
    12. Will try to judge if the feature values are float or string, if NaN, will consider it as a string. quoted numbers are always considered as strings.
    13. If the feature value is empty, will skip that feature.
    14. Reset the parser when EOF of a file is met (for possible multiple input file support).
    15. Support using --csv_ns_value to scale the namespace values by specifying the float ratio. e.g. --csv_ns_value=a:0.5,b:0.3,:8, which the namespace a has a ratio of 0.5, b of 0.3, empty namespace of 8, other namespaces of 1.
    16. If all the cells in a line is empty, then consider it as an empty line. CSV is not a good fit for the multiline format, as evidenced by the large number of empty fields. Multi-line format often means different lines have different schemas. However, I still leave the empty line support to make sure that it’s flexible and extendable enough. In this case, users can still express multi-line examples in CSV files, although it is not listed as supported. We still throw an error if the number of fields separated by the line doesn’t match previous, even all the fields are empty, as this usually means typos that users may not intend.
    opened by HollowMan6 3
Releases(9.2.0)
  • 9.2.0(Jul 12, 2022)

    This release includes a large refactoring of the library structure, support for learn and predict directly from a string in Java, access to model weights in Python, and many more small features and bug fixes.

    Source code(tar.gz)
    Source code(zip)
  • 9.1.0(Apr 6, 2022)

  • 9.0.0(Jan 28, 2022)

  • 8.11.0(Jul 14, 2021)

  • 8.10.2(Jun 11, 2021)

    This patch release contains a fix for model loading in --cb_explore

    Fixes

    • fix: Fix model corruption on reading model for --cb_explore (#3063)
    Source code(tar.gz)
    Source code(zip)
  • 8.10.1(Apr 13, 2021)

    This release includes no code changes but fixes the Python source distribution, and adds support for Python 3.9 binary wheels on MacOS and Windows.

    Since this only affects Python, only the PyPi release channel will be updated.

    All changes:

    • ci: run CI on release branches (#2942)
    • ci: update brew to mitigate bintray brownout (#2941)
    • chore: update version to 8.10.1
    • build: add 3.9 to windows python build (#2939)
    • Fix python manifest for ext_libs (#2938)
    • build: Update build_python_wheels_macos.yml (#2937)
    Source code(tar.gz)
    Source code(zip)
  • 8.10.0(Apr 1, 2021)

  • 8.9.2(Mar 4, 2021)

  • 8.9.1(Jan 27, 2021)

    This patch release contains a fix for the Java bindings. It changes no other code paths apart from the version number changing.

    Fixes

    • Don't export lib symbols from vw_jni binary when static linking (#2789)
    Source code(tar.gz)
    Source code(zip)
  • 8.9.0(Nov 12, 2020)

  • 8.8.1(Mar 3, 2020)

    This patch release fixes an issue in the Python bindings where parsing examples from text sometimes caused crashes.

    Fixes:

    • Fix delete behavior for examples created using parse function (#2206)
    Source code(tar.gz)
    Source code(zip)
  • 8.8.0(Dec 7, 2019)

    • There has significant work in streamlining and improving support for the Python bindings. Thanks @peterychang! (#1928)
    • The Conditional Contextual Bandit reduction got merged in, this reduction allows you to express problems where there are multiple slots to fill. See here for the wiki page. (#1816) (#1995) (#2078) (#2141)
    • CMake install targets have been added to the build files (#2172) (#2135)
      • Now you can find and link VW easily in other projects:
      find_package(VowpalWabbit REQUIRED)
      add_executable(my_exe main.cpp)
      target_link_libraries(my_exe PRIVATE VowpalWabbit::vw)
      
    • Slim VW got merged into master. This is an experimental lightweight inference runtime that supports a subset of VW features. (#2028)
    • Bug fixes! (see all changes below)

    Internal improvements

    We are at work overhauling and modernizing VW, some of the relevant changes on that front are below:

    • Migrate c arrays to std::array (#2094)
    • Make hashing constexpr in C++14 and unify rotl impl (#2093)
    • Make is_example_header const (#2095)
    • Allow constructor arugments for calloc_or_throw (#2070)
    • Learner now holds type erased reduction data (#2060)
    • Use numeric_limits (#2107)
    • Unify throwing of exceptions to use vw_exception instead of bare std:exception (#2171)
    • Cb explore adf atomization (#2069)
    • Refactor cb_adf reduction (#2057)
    • Move cb_sample to be class based (#2087)
    • Atomize topk reduction (#2050)
    • Atomize autolink reduction (#2047)

    Other notable changes:

    • --version now includes commit id if available at build time (#1951)
    • Macos added as CI target (#1965)
    • Allow escaped command lines (#2157)
    • Update MSVC Toolchain to v14.1 (#1988)
    • Multiinstance mode for multiline examples (#1934)

    All Changes

    Click to expand all changes in 8.8.0
    • Fix warning (#2179)
    • Add/exclude new folders in the python MANIFEST (#2180)
    • fix some warnings (#2177)
    • Fixes for Learning2Search Subsystem (#2176)
    • Install rapidjson too (#2174)
    • Use standard save/load functionality for sklearn Python lib (#2142)
    • Default the label for CCB when reading cached labels (#2158)
    • Allow escaped command lines (#2157)
    • Fix header install locations (#2172)
    • Unify throwing of exceptions to use vw_exception instead of bare std::exception (#2171)
    • Disallow combining no_sample and cb_sample (#2148)
    • Fix memory leak in search.cc (#2167)
    • Fix unlabeled sgd examples (#2162)
    • Add deleter for parsed examples (#2153)
    • Fix misinterpreted negative option (#2149)
    • Catalina segfault mitigation (#2152)
    • Implement CCB type binding for Python (#2141)
    • Update test dependencies (#2147)
    • Fix typo: setup.py is not in vowpal_wabbit/python (#2143)
    • Throw instead of silently append nullptr when types don't match (#2139)
    • Fix variadic macro warning (#2138)
    • Create testing harness for cluster operation of VW and add test (#2134)
    • Improve VW support for CMake install process (#2135)
    • Properly support default build type, fix comment, define project version (#2133)
    • Update cluster readme to markdown, cleanup, format code (#2131)
    • Fix slim build and various CMake fixes (#2130)
    • Update CMakeLists.txt (#2127)
    • fixed docker image version (#2126)
    • Fix segfault when ring_size argument is not supplied (#2125)
    • Python: fix deprecated joblib (#2068)
    • forgot to set a parameter (#2114)
    • Add option to turn off sampling for CCB (#2096)
    • Remove redunant copy from CCB reduction (#2112)
    • Fix segfault in CCB - MTR must clean up predictions allocated for cost sensitive examples (#2111)
    • Softmaxpredfile (#2113)
    • Update vw_types.natvis (#2109)
    • Use numeric_limits (#2107)
    • Refactor cb_adf reduction (#2057)
    • Fix an LGTM warning in recommend (#2105)
    • Update CMakeSettings.json (#2104)
    • Remove all usages of "using namespace std" (#2071)
    • Fix lots of warnings and clang-tidy suggestions (#2085)
    • Make hashing constexpr in C++14 and unify rotl impl (#2093)
    • Migrate c arrays to std::array (#2094)
    • Cb explore adf initialize vars (#2102)
    • "-q" as default nc delay option (#2098)
    • Move cb_sample to be class based (#2087)
    • Cb explore adf atomization (#2069)
    • Fix OSX builds when not using Anaconda. (#2097)
    • Mac Os X CI tests fixes (#2035)
    • Make is_example_header const (#2095)
    • Enable use of newer standards (#2092)
    • mitigate clang-cl SIMD issue (#2091)
    • Java Binding Improvements (#2081)
    • fix: softmax can overflow (#2088)
    • Fix type issues and windows version in cmake file (#2084)
    • Atomize topk reduction (#2050)
    • Update badges in Python readme (#2086)
    • pdrop support for cb/ccb dsjson (#2078)
    • Add CMake option to force color codes (#2082)
    • Atomize autolink reduction (#2047)
    • Add forwarding header for commonly used objects in reductions headers (#2080)
    • Fix initilizer (#2073)
    • Force OSX to build .so files for python (#2061)
    • Allow constructor arugments for calloc_or_throw (#2070)
    • Propagate cache reading failures (#2062)
    • Learner now holds type erased reduction data (#2060)
    • Remove unnecessary null checks (#2067)
    • Remove most usages of unsafe sprintf function (#2054)
    • Fix LGTM Java build issues (#2063)
    • Add unit tests to coverage report (#2053)
    • remove copy from closure, and do by reference (#2058)
    • Limit python install parallelisation to number of cpus (#2056)
    • Update noexcept specifier (#2048)
    • Fix memory leak in CCB prediction (#2065)
    • Constrain doxygen input dirs, remove graphs (#2055)
    • vw_slim into master (#2028)
    • DBG helper and new natvis (#2042)
    • Multiinstance mode for multiline examples (#1934)
    • Properly add CCB index feature with stride/offset (#2041)
    • Ataymano/memory leaks fixes (#2020)
    • Implement explicit included actions for CCB (#1995)
    • Add VW-JNI SNAPSHOT publishing to nightly build
    • Fix compile errors on centos (#2005)
    • Install all headers as fix for missing headers in installed library (#1994)
    • Add comment to to tovw to clarify usage (#1999)
    • Add comment to learner.h (#1997)
    • Update MSVC Toolchain to v14.1 (#1988)
    • Remove deprecated projects and old scripts (#1992)
    • fixed command line argument retrieval from parsed model (#1993)
    • Fix implicit fallthrough warning and unused variable warning in GCC (#1984)
    • Replace nanpattern and infpattern with std:: equivalents (#1983)
    • Migrate Travis to migrated Docker image + cleanup old files (#1982)
    • Add Azure pipeline for Linux CI (#1981)
    • Add constexpr and noexcept to some functions, cleanup unused functions (#1985)
    • vw-hyperopt. Passing additional command when training and validating (#1959)
    • Ensure vw object cannot be moved or copied (#1986)
    • Fix building GCOV with Clang (#1980)
    • Update RunTests to be able to find binaries in the build directory (#1979)
    • Test and unify usage of ec_is_example_header (#1970)
    • Remove thread_local_storage from ccb (#1976)
    • Remove hard requirement for git during Windows build (#1977)
    • Action scores print tag (#1971)
    • Fix some warnings (#1973)
    • Remove two makefiles that were missed in Cmake change (#1969)
    • cd_adf: Added importance weight probability clipping for cb_type mtr, ips, dr (#1952)
    • Fix file permissions for macos CI scripts (#1966)
    • Add macos pipeline (#1965)
    • Add LICENSE to the python source package (#1963)
    • Add source info to VW Nuget description, and update copyright years. (#1962)
    • Update new_version script (#1956)
    • Update python README to reflect new build proceedures (#1961)
    • Conditional Contextual Bandit (#1816)
    • Java Maven pom.xml.in update (#1954)
    • Add git commit to output of --version (#1951)
    • cover and regcb: data.counter++ only in learn examples (not predict) (#1950)
    • Spark/JNI multipass fixes and AllReduce quiet support (#1949)
    • cb_explore_adf: fixed bug when resetting cb_type + improvements (#1948)
    • vw-hyperopt (add support for passing namespaces) (#1941)
    • Tau first should count only learn examples (not predict) (#1944)
    • Python distributions (#1928)
    • Enable suppressing NuGet version tag for official builds (#1946)
    • Fix predict path for cb_explore_adf First (#1939)
    • CS simulator v3.0 (#1932)
    • cs/cli/vw_label.h: Avoid to throw for precision issues (#1933)
    • Remove hard-coded version in Windows CI package gen script. (#1936)
    • Fix clear labels the correct way (#1930)
    Source code(tar.gz)
    Source code(zip)
  • 8.7.0(Jun 7, 2019)

    • The repo has moved to the VowpalWabbit organization
    • The group of core maintainers has been growing with steady improvements

    Changes

    As always, lots of bug fixes.

    Build System

    The build system for VW has been overhauled to use CMake. This means, easier dependency resolution, faster build times and easier consumption as a dependency. The old automake + make systems have been replaced by this and eventually the .sln file will be replaced too. (#1624)

    Reductions/Learning Algorithms

    • Coin betting (#1903)
    • Contextual Memory Tree (#1799)
    • Warm start for cbify (#1534)
    • Softmax learner for cbadf (#1839)
    • cbify: --cbify_ldf for multiline (csoaa_ldf input datasets (#1681))

    Other Improvements

    • The parser has moved to using std types for concurency and has a clearer data production model. You’ll slowly notice more RAII types in VW. (#1731) (#1777)
    • A clang format file was added and the codebase reformatted. This is to keep things more consistent and easy to read. (#1701)
    • The Python bindings can now use JSON as the input format, as long as the VW instance you’re using is configured to be parsing input as JSON (#1809)
    • A new --strict_parse option was added to throw instead of warn for malformed examples (#1906)
    • Bare Java JNI Bindings optimized for Apache Spark (#1798)
    • Add multiclass support for hyperopt utl (#1682)

    All Changes

    Click to expand all changes in 8.7.0
    • Warm start for cbify (#1534)
    • utl/vw-varinfo: work-around for issue/1547 (#1548)
    • Gramhagen 1538 python make test (#1550)
    • Fixed bug in CLI parsing of --csoaa_ldf multiline (#1551)
    • ksvm lambda fix (#1556)
    • Fixed bug causing to reset dump_interval to 1 when input model -i is provided (#1558)
    • Extract stable_unique to own function for clarity (#1559)
    • Improvements and small fixes to utl (vw-lda, csv2vw (#1580)
    • When parsing dsjson, skip lines not starting with "{" (#1593)
    • Clean windows build and unify output paths (#1599)
    • Remove unused cs_testcommon project and directory (#1606)
    • build instructions: program_options insufficient (#1607)
    • Fixed _labelIndex out of bound error message (#1609)
    • Update Readme with details on installing boost dependencies (#1613)
    • Add caching to appveyor build (#1616)
    • Use a prebuilt docker image for travis build (#1620)
    • CMake build definitions (#1624)
    • VS 2017 fixes (#1628)
    • Further improve build cache by saving packages (#1634)
    • Update Travis and Appveyor badges to reflect organization change (#1642)
    • Fix cb explore adf segfault (#1643)
    • Make VW setup projects buildable from the command-line (#1646)
    • Use nuget restore instead of nuget install in Appveyor build (#1659)
    • Remove unused boost packages from VW (#1664)
    • Replace $(SolutionDir with $(ProjectDir (#1666)
    • Use cerr for parser warnings (#1670)
    • Export vw audit output to .tsv file (#1677)
    • Enable selective CMake configuration, improve messaging (#1678)
    • Fix crash when empty multi_ex is supplied for --cb_explore_adf (#1679)
    • cbify: --cbify_ldf for multiline (csoaa_ldf input datasets (#1681)
    • add multiclass support for hyperopt utl (#1682)
    • bugfix: cb_adf is not including some examples in stats calculation (#1686)
    • Move trace_message from arguments to vw object (#1688)
    • Add bug report issue template (#1693)
    • Fix some VW initialization memory leaks (#1697)
    • Fix memory leak in cb_explore_adf (#1698)
    • vw java 11 compatibility (#1700)
    • Add clang-format (#1701)
    • Fix best constant and best constant's loss calculation when using ksvm (#1704)
    • Update assembly versions to match current version (#1705)
    • options_i command line parsing refactor (#1706)
    • Disable stdin processing for all but single instance CLI. Fixes 1300 (#1708)
    • Use std::exp instead of exp free function (#1709)
    • Fix unused params warnings plus incomplete struct init (done to default values. (#1710)
    • Add check for hash_inv when creating json parser (#1711)
    • Compile fixes (#1713)
    • Change from strcmp to std::string operator== (#1715)
    • Update Dockerfile for TravisCI, define pipeline, upgrade Java (#1716)
    • Change to using a bool_switch for bool options (#1717)
    • Ataymano/mac options types fix (#1718)
    • Add clang-format 7.0.1 to CI image (#1719)
    • Create Windows build scripts and update instructions (#1721)
    • Make cbify reduction respect is_learn parameter (#1722)
    • Add natvis file for v_array and substring (#1723)
    • Remove -DSTATIC_LINK_VW from Ubuntu build instructions (#1727)
    • Fix warnings in Windows MSVC x64 build (#1730)
    • Move to std types for concurrency (#1731)
    • Scripts for running tests and generating NuGet packages (#1732)
    • Fix a small issue and cleanup usage of long long (#1733)
    • Fix file enocding for .rc files (#1734)
    • Fix build scripts forcing Debug builds. Add LTO mode and fix VW default visibility. (#1735)
    • Update README.md (#1737)
    • Update image used in travis (#1738)
    • Fix model file parser for proper treatment of negative-valued options (#1742)
    • shift clang-format to advise (#1744)
    • [tests] Make repeat.py compatible with python 3. (#1747)
    • Do not define BOOST_TEST_DYN_LINK when statically linking (#1750)
    • Fix test 175 (#1751)
    • Convert TopK reduction to be multiline example based (#1752)
    • RunTests: use test label number instead of counter (#1753)
    • Fix static linking (#1758)
    • Small Json parser cleanup (#1759)
    • Type erase json parser context for easier deletion (#1760)
    • Migrate from v_array to std::vector in some places + other changes (#1765)
    • On OSX, we need to catch boost::program_options::ambiguous_option directly. Probably due to different boost versions. (#1776)
    • Parser now uses object and prod/cons queue and object pool for example parsing (#1777)
    • Fix resetting of cb_type (#1779)
    • Fix weighted average on cluster mode (#1781)
    • Allow spanning_tree to be a static executable (#1787)
    • [audit] Make sure --audit output is reproducible across systems. (#1788)
    • Add example C# Simulator (#1790)
    • Fix usage of char instead of unsigned char for namespace index (#1791)
    • Fix to bug 1729: no bias regularization for BFGS not working (#1794)
    • Bare Java JNI Bindings optimized for Apache Spark (#1798)
    • Contextual Memory Tree (#1799)
    • expand Boost_LIBRARIES for pkg-config libs (#1801)
    • Use std::stable_sort when computing interactions. (#1804)
    • [OSX] Improve support for static linking. (#1807)
    • Enable JSON example parsing in Python bindings (#1809)
    • Fix example constructor (#1814)
    • [python] Fix packaging so it's possible to produce a wheels package on linux. (#1815)
    • Update Python readme to reflect latest way to consume bindings from source (#1817)
    • Fix L2S HookTask in c-library and Python bindings (#1818)
    • Clear cb labels when returning to pool (#1822)
    • Fix build scripts for python3 (#1823)
    • Fix "average loss" bug in cb_explore.cc (#1825)
    • Add gitter chat badge to readme (#1826)
    • Fix README.Windows.md link (#1827)
    • Consume RapidJson through submodule (#1828)
    • fix bug 1784: return probabilities for actions in the correct order in python binding (#1830)
    • Fix else statement (#1832)
    • Fix NaN issue in box-muller tranform (#1833)
    • Fix v142 toolchain (#1834)
    • Implement finish_example, update scripts to match (#1837)
    • cb_adf and cb_explore_adf: Setting --cb_type mtr as default (#1838)
    • First attempt at softmax learner for cbadf (#1839)
    • Fix conda_install.sh script (#1843)
    • Fix counting issue with --holdout_after option (#1844)
    • Run coveralls inside docker (#1847)
    • Cmake build on Windows (#1849)
    • Fix coveralls badge URL in README [(#1850)]https://github.com/VowpalWabbit/vowpal_wabbit/pull/1850)
    • Azure Pipeline for Windows CI (#1853)
    • cleaning up broken python3 vcxproj files (#1854)
    • BF: add cmake to installed dependencies in unstable singularity images (#1857)
    • Ataymano/c wrapper fix2 (#1859)
    • Fix Azure Pipeline build-break (#1867)
    • Enable Version and Tag override for NuGet pack (#1870)
    • Shared example merge reduction (#1873)
    • Update gd_mf_weights.cc right namespace (#1874)
    • Fixed warning message ips -> mtr (#1875)
    • Fix dsjson parser regression and add smoke-test (#1878)
    • do not output progressive validation loss for oaa with subsampling (#1880)
    • Add python documentation generation (#1884)
    • Update python documentation theme and index (#1885)
    • Change references from SolutionDir to ProjectDir (#1886)
    • Clean up some options warnings and remove some extra copies (#1888)
    • fix to make invert_hash work with bfgs (#1892)
    • Treat resource files as binary (#1896)
    • memory leaks and warnings (#1898)
    • Change version-generation for C# bindings to use version.txt (#1899)
    • Change to absolute https path for submodule (#1900)
    • fix for no label confidence (#1901)
    • Coin betting (#1903)
    • Use Appveyor MSBuildLogger (#1904)
    • Optional exception (#1906)
    • fix closing invalid file descriptor with memory_io_buf (#1910)
    • remove warnings (#1911)
    • Fix to save the state of FTRL models (#1912)
    • fix static library build (#1913)
    • more warnings (#1915)
    • fix for daemon race condition (#1918)
    • Bremen79 fix save ftrl (#1919)
    • change semantics of lambda (#1920)
    Source code(tar.gz)
    Source code(zip)
  • 8.6.1(Jul 21, 2018)

  • 8.6.0(Jul 5, 2018)

    This version has many bug fixes of course. In addition, (1) There are many improvements to the contextual bandit code thanks to Alberto Bietti (https://arxiv.org/abs/1802.04064 ). (2) There are significant improvements to save_resume due to @denik.

    Internally, (a) The argument parsing code has been rewritten to be more consistent throughout the code base via parser_helper.h. (b) There are significant improvements in the way that multiline examples are handled thanks to @rajan-chari

    Note that unlike previous release versions, I've left the "Makefile" build system in place rather than using Automake. Automake is still available if desired, but you'll need to run it manually if you want to use it.

    Source code(tar.gz)
    Source code(zip)
  • 8.5.0(Dec 3, 2017)

    8.5.0 has further improvements, including fully working sparse model support, empirically optimized exploration algorithms, a new cost-sensitive active learning algorithm (https://arxiv.org/abs/1703.01014), and baseline prediction support.

    Source code(tar.gz)
    Source code(zip)
  • 8.4.0(Jul 22, 2017)

    There aren’t many new features since 8.3.0 (better JSON language support, better offline eval, sparse parameter support), so this version simply addresses a number of issues that have shown up over time

    Source code(tar.gz)
    Source code(zip)
  • 8.2.0(Jun 21, 2016)

  • 7.10(Feb 14, 2015)

  • 7.9(Jan 11, 2015)

  • 7.8(Dec 7, 2014)

In this tutorial, we will use machine learning to build a gesture recognition system that runs on a tiny microcontroller, the RP2040.

Pico-Motion-Recognition This Repository has the code used on the 2 parts tutorial TinyML - Motion Recognition Using Raspberry Pi Pico The first part i

Marcelo Rovai 16 Jun 18, 2022
A flexible, high-performance serving system for machine learning models

XGBoost Serving This is a fork of TensorFlow Serving, extended with the support for XGBoost, alphaFM and alphaFM_softmax frameworks. For more informat

iQIYI 120 Aug 1, 2022
A library for creating Artificial Neural Networks, for use in Machine Learning and Deep Learning algorithms.

iNeural A library for creating Artificial Neural Networks, for use in Machine Learning and Deep Learning algorithms. What is a Neural Network? Work on

Fatih Küçükkarakurt 5 Apr 5, 2022
Lite.AI.ToolKit 🚀🚀🌟: A lite C++ toolkit of awesome AI models such as RobustVideoMatting🔥, YOLOX🔥, YOLOP🔥 etc.

Lite.AI.ToolKit ?? ?? ?? : A lite C++ toolkit of awesome AI models which contains 70+ models now. It's a collection of personal interests. Such as RVM, YOLOX, YOLOP, YOLOR, YoloV5, DeepLabV3, ArcFace, etc.

DefTruth 1.9k Aug 7, 2022
Deep Scalable Sparse Tensor Network Engine (DSSTNE) is an Amazon developed library for building Deep Learning (DL) machine learning (ML) models

Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine DSSTNE (pronounced "Destiny") is an open source software library for training and deploying

Amazon Archives 4.4k Jul 30, 2022
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Aug 1, 2022
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

CatBoost 6.7k Aug 12, 2022
In-situ data analyses and machine learning with OpenFOAM and Python

PythonFOAM: In-situ data analyses with OpenFOAM and Python Using Python modules for in-situ data analytics with OpenFOAM 8. NOTE that this is NOT PyFO

Argonne Leadership Computing Facility - ALCF 105 Aug 5, 2022
A lightweight C++ machine learning library for embedded electronics and robotics.

Fido Fido is an lightweight, highly modular C++ machine learning library for embedded electronics and robotics. Fido is especially suited for robotic

The Fido Project 412 Jun 25, 2022
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed a

Microsoft 14.1k Aug 10, 2022
Python Inference Script is a Python package that enables developers to author machine learning workflows in Python and deploy without Python.

Python Inference Script(PyIS) Python Inference Script is a Python package that enables developers to author machine learning workflows in Python and d

Microsoft 10 Feb 23, 2022
SHARK - High Performance Machine Learning for CPUs, GPUs, Accelerators and Heterogeneous Clusters

SHARK Communication Channels GitHub issues: Feature requests, bugs etc Nod.ai SHARK Discord server: Real time discussions with the nod.ai team and oth

nod.ai 37 Aug 3, 2022
An Open Source Machine Learning Framework for Everyone

Documentation TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries, a

null 167.1k Aug 13, 2022
Distributed machine learning platform

Veles Distributed platform for rapid Deep learning application development Consists of: Platform - https://github.com/Samsung/veles Znicz Plugin - Neu

Samsung 898 Jul 25, 2022
An open source machine learning library for performing regression tasks using RVM technique.

Introduction neonrvm is an open source machine learning library for performing regression tasks using RVM technique. It is written in C programming la

Siavash Eliasi 33 May 31, 2022
Feature Store for Machine Learning

Overview Feast (Feature Store) is an operational data system for managing and serving machine learning features to models in production. Please see ou

Feast 3.5k Aug 11, 2022
Machine Learning Platform for Kubernetes

Reproduce, Automate, Scale your data science. Welcome to Polyaxon, a platform for building, training, and monitoring large scale deep learning applica

polyaxon 3.1k Aug 4, 2022
CNStream is a streaming framework for building Cambricon machine learning pipelines

CNStream is a streaming framework for building Cambricon machine learning pipelines

Cambricon Technologies 174 Aug 4, 2022