machine-learning vowpalwabbit large-data

machine learning - Errores debidos a las dependencias de wabbit de vowpal en la biblioteca de impulso



machine-learning vowpalwabbit (3)

Intento realmente dificil instalar vowpal wobbit y falla cuando ejecuto el archivo make, arrojando:

cd library; make; cd .. g++ -g -o ezexample temp2.cc -L ../vowpalwabbit -l vw -l allreduce -l boost_program_options -l z -l pthread ld: library not found for -lboost_program_options collect2: ld returned 1 exit status make[1]: *** [ezexample] Error 1''

Luego agregué los enlaces a la biblioteca de impulso aquí especificando -L / usr / local / lib

Ahora recibo el siguiente error:

g++ -g -o ezexample temp2.cc -L/usr/local/lib ../vowpalwabbit -l vw -l allreduce -l boost_program_options -l z -l pthread ld: library not found for -lvw collect2: ld returned 1 exit status make: *** [ezexample] Error 1


Logré que todo funcionara en OS X 10.7 de la siguiente manera:

  1. Asegúrese de tener una instalación de Boost en funcionamiento. Como se indica en la página de Introducción , generalmente solo necesitamos archivos de cabecera, pero algunas bibliotecas de Boost deben construirse por separado, incluida la biblioteca program_options que se utiliza para procesar las opciones desde la línea de comandos o el archivo de configuración. Vaya a su carpeta de boost , y luego en el indicador de su shell:

    $ ./bootstrap.sh $ ./bjam

    Esto compilará y construirá todo. Ahora debería tener un directorio bin.v2/ en su directorio boost , con todas las bibliotecas creadas para su sistema (bibliotecas estáticas y con subprocesos).

    $ ls bin.v2/libs/ date_time iostreams python serialization test filesystem math random signals thread graph program_options regex system wave

    Más importante aún, las bibliotecas adicionales de Boost están disponibles en el directorio stage/lib/ . Para mí, se trata de la Mach-O 64-bit dynamically linked shared library x86_64 .

    La ruta de inclusión debe ser your_install_dir/boost_x_xx_x , donde boost_x_xx_x es el nombre base de tu Boost en funcionamiento. (Personalmente tengo boost_1_46_1 en /usr/local/share/ y lo vinculé a /usr/local/share/boost para evitar tener que recordar el número de versión.) La ruta de la biblioteca (para vincular) debería leer your_install_dir/boost_x_xx_x/stage/lib . Sin embargo, podría ser mejor enlazar o copiar simbólicamente (que es lo que hice) todo en el lugar habitual, es decir, /usr/local/include/boost para archivos de encabezado y /usr/local/lib para las bibliotecas.

  2. Edite el vowpal_wabbit Makefile del directorio vowpal_wabbit y cambie las rutas include / library para que reflejen su instalación actual. El Makefile debe verse así (las primeras 12 líneas):

    COMPILER = g++ UNAME := $(shell uname) ifeq ($(UNAME), FreeBSD) LIBS = -l boost_program_options -l pthread -l z -l compat BOOST_INCLUDE = /usr/local/include BOOST_LIBRARY = /usr/local/lib else LIBS = -l boost_program_options -l pthread -l z BOOST_INCLUDE = /usr/local/share/boost # change path to reflect yours BOOST_LIBRARY = /usr/local/share/boost/stage/lib # idem endif

    Entonces, estás listo para compilar vowpal_wabbit ( make clean en caso de que ya lo hayas compilado):

    $ make $ ./vw --version 6.1 $ make test


También puedes instalar el wabbit de vowpal en OS X usando brew :

brew install vowpal-wabbit

O simplemente puede instalar boost, y luego instalar vw desde el repositorio github.

brew install boost


Para la instalación en CentOS 7 (la versión de 6.5 perl es demasiado antigua para el último código fuente vw), he encontrado las instrucciones en http://wkoplitz.blogspot.be/2012/12/vowpal-wabbit-on-centos.html para trabaja bien:

yum install zlib-devel boost-devel yum groupinstall "Development Tools" git clone git://github.com/JohnLangford/vowpal_wabbit.git cd vowpal_wabbit ./autogen.sh make make test