-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error Installing on CentOS and RHEL platforms #20
Comments
I ended up re-running everything and it "seemed" to run OK. but I get this error trying to import from fastFM import sgd ImportError: /home/anaconda/lib/python2.7/site-packages/fastFM/ffm.so: undefined symbol: g_array_new |
|
I had run it. When I do this again I receive: sudo apt-get install libglib2.0-dev python-dev libatlas-base-dev Reading package lists... Done |
You need the following steps:
Are you missing step 2 ? Please start with a clean clone. |
I got a fresh clone and ran through all the steps. Same error sadly. Not sure why? /home/anaconda/lib/python2.7/site-packages/fastFM/fastFM/base.py in () ImportError: /home/anaconda/lib/python2.7/site-packages/fastFM/ffm.so: undefined symbol: g_array_new |
I need the command and output for every single step starting with |
OK I will start over again and supply |
Attached. Thanks for your help! |
Thanks for reporting the error, I can reproduce it locally. I'll comment here as soon as it's fixed! |
I have committed a bugfix. |
Seemed to do the trick! thanks very much! |
On a side note, I was curious how FM generally would work on a typical structured data problem (not a click through one with massively high cardinality of IDs) - so I tried fastFM on the current Kaggle dataset from the Prudential challenge. After 1 hot encoding the categorical variables, there is around 850 variables (some numerics, some discrete ordinal ones and the dummy variables). The performance I got so far was very poor. I was curious if you have found that this algorithm can be competitive on problems like this (I noted you mentioned it should be a regular "toolbox" algorithm). |
FM's can be regarded as second order polynomial regression with factorized coefficients for the variable interaction. The factorization is indeed most interesting for categorical variables with high cardinality. I'm not surprised that FM's don't work miracles in the Prudential challenge but they should perform at least as good as logistic / linear regression with properly tuned hyper parameter. I think loads of dummy variables show up more and more these days, not only in CRP. That's why I think it's good to have a tool for this kind of data in you toolbox. :-) |
It would be interesting to see what an expert can do with it. I was unable to get even decent results (worse than libfm) but I assume it was my newness to tuning. |
Just curious to know if this has been merged into master? I'm facing the same issue on Linux |
@zerowgravity |
I'm running an Amazon Linux AMI, Here is the full error output: fastFM]$ make |
This ended up being a symlink issue. From research, I think it's specific to CentOS and RHEL platforms. The symlink seems to be created otherwise. |
@zerowgravity |
I found this http://stackoverflow.com/questions/6789368/how-to-make-sure-the-numpy-blas-libraries-are-available-as-dynamically-loadable and tried to emulate it for fastFM. |
I didn't manage to successfully follow that stackoverflow should I just find the libblas.so in /usr/lib64 and paste it into the fastFM directory in python2.7/dist-packages? From what I can see /usr/lib64/libblas.so exists so it isn't an issue with it being called .3gf |
I followed all the install directions. Running make for the C parts seemed to finish without error but running python setup.py install creates the following error. I am on 64 bit Linux (mint). Any ideas?
python setup.py install
running install
running build
running build_py
running build_ext
skipping 'fastFM/ffm.c' Cython extension (up-to-date)
building 'ffm' extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -IfastFM/ -IfastFM-core/include/ -IfastFM-core/externals/CXSparse/Include/ -I/usr/include/ -I/home/anaconda/lib/python2.7/site-packages/numpy/core/include -I/home/anaconda/include/python2.7 -c fastFM/ffm.c -o build/temp.linux-x86_64-2.7/fastFM/ffm.o
In file included from /home/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1781:0,
from /home/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
from /home/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from fastFM/ffm.c:252:
/home/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by "
^
In file included from /home/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:27:0,
from /home/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from fastFM/ffm.c:252:
/home/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1634:1: warning: ‘_import_array’ defined but not used [-Wunused-function]
_import_array(void)
^
gcc -pthread -shared -L/home/anaconda/lib -Wl,-rpath=/home/anaconda/lib,--no-as-needed build/temp.linux-x86_64-2.7/fastFM/ffm.o -LfastFM/ -LfastFM-core/bin/ -LfastFM-core/externals/CXSparse/Lib/ -L/usr/lib/ -L/usr/lib/atlas-base/ -L/home/anaconda/lib -lm -lfastfm -lcxsparse -lcblas -lpython2.7 -o build/lib.linux-x86_64-2.7/ffm.so
/usr/bin/ld: cannot find -lfastfm
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
The text was updated successfully, but these errors were encountered: