i want to run the matrix_factorization example ,but return errors
[tuhangdi@localhost paracel-master]$ /usr/local/prun.py -p 1 -w 1 -c cfg.json -m local /usr/local/bin/wc terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorboost::property_tree::ptree_bad_path >' what(): No such node (topk) [localhost:11886] *** Process received signal *** [localhost:11886] Signal: Aborted (6) [localhost:11886] Signal code: (-6) [localhost:11886] [ 0] /lib64/libpthread.so.0(+0xf370)[0x7fcc180ce370] [localhost:11886] [ 1] /lib64/libc.so.6(gsignal+0x37)[0x7fcc17d331d7] [localhost:11886] [ 2] /lib64/libc.so.6(abort+0x148)[0x7fcc17d348c8] [localhost:11886] [ 3] /lib64/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x165)[0x7fcc188539d5] [localhost:11886] [ 4] /lib64/libstdc++.so.6(+0x5e946)[0x7fcc18851946] [localhost:11886] [ 5] /lib64/libstdc++.so.6(+0x5e973)[0x7fcc18851973] [localhost:11886] [ 6] /lib64/libstdc++.so.6(+0x5eb93)[0x7fcc18851b93] [localhost:11886] [ 7] /usr/local/bin/wc(ZN5boost15throw_exceptionINS_16exception_detail19error_info_injectorINS_13property_tree14ptree_bad_pathEEEEEvRKT+0xcd)[0x42f76d] [localhost:11886] [ 8] /usr/local/bin/wc(_ZN5boost16exception_detail16throw_exception_INS_13property_tree14ptree_bad_pathEEEvRKT_PKcS8_i+0x77)[0x42f847] [localhost:11886] [ 9] /usr/local/bin/wc(_ZN5boost13property_tree11basic_ptreeISsSsSt4lessISsEE9get_childERKNS0_11string_pathISsNS0_13id_translatorISsEEEE+0xba)[0x42fd9a] [localhost:11886] [10] /usr/local/bin/wc(_ZN7paracel11json_parser5parseIiEET_RKSs+0x45)[0x430735] [localhost:11886] [11] /usr/local/bin/wc(main+0x26e)[0x41cb7e] [localhost:11886] [12] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7fcc17d1fb35] [localhost:11886] [13] /usr/local/bin/wc[0x41d78e] [localhost:11886] *** End of error message ***
=================================================================================== = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 11886 RUNNING AT localhost.localdomain = EXIT CODE: 134 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Aborted (signal 6) This typically refers to a problem with your application. Please see the FAQ page for debugging suggestions
I guess the dismatching json file. Could you paste your cfg.json?
Also, you give an incorrect input arg, /usr/local/bin/wc is not matrix factorization.
[tuhangdi@localhost paracel-master]$ /usr/local//prun.py -w 1 -p 1 -c cfg.json -m local /usr/local/bin/mf lines got
internal error in lines_organize: fmt of input files not supported [localhost:14227] *** Process received signal *** [localhost:14227] Signal: Aborted (6) [localhost:14227] Signal code: (-6) [localhost:14227] [ 0] /lib64/libpthread.so.0(+0xf370)[0x7fda77a6f370] [localhost:14227] [ 1] /lib64/libc.so.6(gsignal+0x37)[0x7fda776d41d7] [localhost:14227] [ 2] /lib64/libc.so.6(abort+0x148)[0x7fda776d58c8] [localhost:14227] [ 3] /usr/local/bin/mf(_ZN7paracel9scheduler14lines_organizeIRSt8functionIFSt6vectorISsSaISsEESsEEEEvRKS5_OT_RS3_IS3_ISt5tupleIJmmdEESaISE_EESaISG_EE+0x5f1)[0x4379b1] [localhost:14227] [ 4] /usr/local/bin/mf(_ZN7paracel6loaderISsE12create_graphERSt6vectorISsSaISsEERNS_7bigraphImEE+0xc4)[0x4447f4] [localhost:14227] [ 5] /usr/local/bin/mf(_ZN7paracel6paralg21paracel_load_as_graphISsmEEvRNS_7bigraphIT0_EERKT_RSt8functionIFSt6vectorISsSaISsEESsEERKSsb+0x14b)[0x444f8b] [localhost:14227] [ 6] /usr/local/bin/mf(_ZN7paracel3alg20matrix_factorization15init_parametersEv+0x74)[0x445234] [localhost:14227] [ 7] /usr/local/bin/mf(_ZN7paracel3alg20matrix_factorization5solveEv+0x9)[0x446189] [localhost:14227] [ 8] /usr/local/bin/mf(main+0xa7e)[0x420dee] [localhost:14227] [ 9] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7fda776c0b35] [localhost:14227] [10] /usr/local/bin/mf[0x4215fe] [localhost:14227] *** End of error message ***
=================================================================================== = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 14227 RUNNING AT localhost.localdomain = EXIT CODE: 134 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Aborted (signal 6) This typically refers to a problem with your application. Please see the FAQ page for debugging suggestions
{ "input" : "netflix.dat", "predict_input" : "netflix.dat.predict", "output" : "/home/tuhangdi/paracel-master/t_result/", "update_file" : "/usr/local/lib/libmf_update.so", "update_functions" : ["cnt_updater", "mf_fac_updater", "mf_bias_updater"], "filter_file" : "/usr/local/lib/libmf_filter.so", "filter_functions" : ["mf_ubias_filter", "mf_ibias_filter", "mf_W_filter", "mf_H_filter"], "k" : 100, "rounds" : 10000, "alpha" : 0.001, "beta" : 0.001, "debug" : false, "ssp_switch" : true, "limit_s" : 3 }
According to this output internal error in lines_organize: fmt of input files not supported, I think the problem should be the mismatched parser function between the definition here with the input format of netflix.dat: uid iid date rating. The true meaning of local_parser is to convert the original data into a triple since for 2D matrix factorization model, it is a bigraph structure to represent the relation of data. Please make sure the format is matched.
Three suggested solutions you could try:
- make sure
netflix.datis in current directory since incfg.jsonyou specify this. - write a mimic python script to verify your
netflix.datis correct. Mimiclocal_parserinsidemf.hpplike this:
# debug_mf.py
def foo():
f = file('netflix.dat')
for line in f:
if len(line.split()) != 4:
print 'incorrect line', line
f.close()
if __name__ == '__main__':
foo()
If there are incorrect lines, try to modify the local_parser definition in mf.hpp to support this. Pull request is welcome.
3. Open your coredump setting using ulimit -c unlimited, and generate core file in your executation folder. type gdb -c core enter core env and paste stack information here using bt.