sramirez / fast-mrmr Goto Github PK
View Code? Open in Web Editor NEWAn improved implementation of the classical feature selection method: minimum Redundancy and Maximum Relevance (mRMR).
An improved implementation of the classical feature selection method: minimum Redundancy and Maximum Relevance (mRMR).
Hi,
I have created the input file according to the requirement, but while running fast-mrmr, I am getting the following error
Segmentation fault (core dumped)
The codebase contains an error in that "file" is not defined in the options constructor. Here's the compiler output with error:
g++ -c -m64 -O3 -Wall -I../include/ -I/usr/include/boost/ -I/usr/local/cuda-7.5/include/ main.cpp -o main.o
main.cpp: In function ‘options parseOptions(int, char**)’:
main.cpp:49:7: error: ‘options {aka struct options}’ has no member named ‘file’
opts.file = "../data.mrmr";
^
main.cpp:54:10: error: ‘options {aka struct options}’ has no member named ‘file’
opts.file = argv[i + 1];
^
main.cpp: In function ‘int main(int, char**)’:
main.cpp:86:33: error: ‘options {aka struct options}’ has no member named ‘file’
RawData rawData = RawData(opts.file);
^
Makefile:48: recipe for target 'main.o' failed
make: *** [main.o] Error 1
The title is self-explanatory. I'm unable to trace back the source of the issue (e.g. compiler version) and the documentation isn't very exhaustive in this regard so I thought I'd ask here. I would appreciate any help.
Compiler trace (excerpt):
>> komi@DESKTOP:(...)/utils/data-reader$ make
main.cpp:44:43: error: template argument 2 is invalid
44 | bool contains(string key, map<string, byte> mymap) {
| ^
main.cpp:44:43: error: template argument 4 is invalid
main.cpp:44:43: error: template argument 2 is invalid
main.cpp:44:43: error: template argument 4 is invalid
main.cpp:44:43: error: template argument 2 is invalid
main.cpp:44:43: error: template argument 4 is invalid
main.cpp:44:27: error: invalid template-id
44 | bool contains(string key, map<string, byte> mymap) {
| ^~~
main.cpp:44:39: error: reference to ‘byte’ is ambiguous
44 | bool contains(string key, map<string, byte> mymap) {
| ^~~~
main.cpp:44:27: error: class template placeholder ‘std::map’ not permitted in this context
44 | bool contains(string key, map<string, byte> mymap) {
| ^~~
main.cpp: In function ‘bool contains(...)’:
main.cpp:45:25: error: template argument 2 is invalid
45 | map<string, byte>::iterator it = mymap.find(key);
| ^
( ... )
Some environment information:
I have had no problems running make and executing the example for the sequential CPU fast version. Only having issues with the data reader.
Cheers
I'm aiming to try this out to and have a general question:
Is it possible to adress a particular GPU, since my DL machine provides 8 GPUs?
This might result in a huge performance boost.
If multi-GPU is not supported, which one will be chosen?
Your info files for CPU and GPU say, that
fast-mRMR's output consists of a ranking of features separated by commas (in descending order):
./fast-mrmr
765,1582,1672,513,1671,1325,1381,1972,1423,1412
Anything else that will be provided? E. g.
If not any, this (great) implementation would be useless for my purposes.
Attached the csv and mrmr files I used in following link (only available for 30 days):
csv: (the difference compared with the example csv file is that the features in my csv is floating number not discrete)
mrmr:
https://ufile.io/gn3tcmgw
when I run fast_mrmr to rank the features, I met an error:
(py35) shihao@predator:~/Desktop/Shihao/mrmr_feature_selection$ ./fast-mRMR/cpu/src/fast-mrmr -f ./data.mrmr
*** Error in '.fast-mRMR/cpu/src/fast-mrmr': corrupted size vs. prev_size: 0x00000000012ee6e0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fca5468c7e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x80dfb)[0x7fca54695dfb]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fca5469953c]
./fast-mRMR/cpu/src/fast-mrmr[0x401d14]
./fast-mRMR/cpu/src/fast-mrmr[0x40212e]
./fast-mRMR/cpu/src/fast-mrmr[0x400fd9]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fca54635830]
./fast-mRMR/cpu/src/fast-mrmr[0x401649]
======= Memory map: ========
00400000-00404000 r-xp 00000000 08:02 37093650 /home/shihao/Desktop/Shihao/mrmr_feature_selection/fast-mRMR/cpu/src/fast-mrmr
00603000-00604000 r--p 00003000 08:02 37093650 /home/shihao/Desktop/Shihao/mrmr_feature_selection/fast-mRMR/cpu/src/fast-mrmr
00604000-00605000 rw-p 00004000 08:02 37093650 /home/shihao/Desktop/Shihao/mrmr_feature_selection/fast-mRMR/cpu/src/fast-mrmr
01256000-0130b000 rw-p 00000000 00:00 0 [heap]
7fca50000000-7fca50021000 rw-p 00000000 00:00 0
7fca50021000-7fca54000000 ---p 00000000 00:00 0
7fca54615000-7fca547d5000 r-xp 00000000 08:02 175116839 /lib/x86_64-linux-gnu/libc-2.23.so
7fca547d5000-7fca549d5000 ---p 001c0000 08:02 175116839 /lib/x86_64-linux-gnu/libc-2.23.so
7fca549d5000-7fca549d9000 r--p 001c0000 08:02 175116839 /lib/x86_64-linux-gnu/libc-2.23.so
7fca549d9000-7fca549db000 rw-p 001c4000 08:02 175116839 /lib/x86_64-linux-gnu/libc-2.23.so
7fca549db000-7fca549df000 rw-p 00000000 00:00 0
7fca549df000-7fca549f5000 r-xp 00000000 08:02 175116877 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fca549f5000-7fca54bf4000 ---p 00016000 08:02 175116877 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fca54bf4000-7fca54bf5000 rw-p 00015000 08:02 175116877 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fca54bf5000-7fca54cfd000 r-xp 00000000 08:02 175116909 /lib/x86_64-linux-gnu/libm-2.23.so
7fca54cfd000-7fca54efc000 ---p 00108000 08:02 175116909 /lib/x86_64-linux-gnu/libm-2.23.so
7fca54efc000-7fca54efd000 r--p 00107000 08:02 175116909 /lib/x86_64-linux-gnu/libm-2.23.so
7fca54efd000-7fca54efe000 rw-p 00108000 08:02 175116909 /lib/x86_64-linux-gnu/libm-2.23.so
7fca54efe000-7fca55070000 r-xp 00000000 08:02 131989692 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fca55070000-7fca55270000 ---p 00172000 08:02 131989692 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fca55270000-7fca5527a000 r--p 00172000 08:02 131989692 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fca5527a000-7fca5527c000 rw-p 0017c000 08:02 131989692 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fca5527c000-7fca55280000 rw-p 00000000 00:00 0
7fca55280000-7fca552a6000 r-xp 00000000 08:02 175116811 /lib/x86_64-linux-gnu/ld-2.23.so
7fca5545d000-7fca5548b000 rw-p 00000000 00:00 0
7fca554a4000-7fca554a5000 rw-p 00000000 00:00 0
7fca554a5000-7fca554a6000 r--p 00025000 08:02 175116811 /lib/x86_64-linux-gnu/ld-2.23.so
7fca554a6000-7fca554a7000 rw-p 00026000 08:02 175116811 /lib/x86_64-linux-gnu/ld-2.23.so
7fca554a7000-7fca554a8000 rw-p 00000000 00:00 0
7fff19696000-7fff196b7000 rw-p 00000000 00:00 0 [stack]
7fff1979b000-7fff1979e000 r--p 00000000 00:00 0 [vvar]
7fff1979e000-7fff197a0000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted (core dumped)
Can anyone take care of this issue? Thanks!
with
Best regards
XU SHIHAO
I am using the CPU version of the code for feature selection. Different -n values gives the same feature set selected. I am not sure what happens here. I appreciate your help.
[blrk@projectsuse src]$ ./fast-mrmr -f /home/blrk/data/data.mrmr
1,2,3,28,4,5,6,7,8,9
[blrk@projectsuse src]$ ./fast-mrmr -f /home/blrk/data/data.mrmr -n 20
1,2,3,28,4,5,6,7,8,9
[blrk@projectsuse src]$ ./fast-mrmr -f /home/blrk/data/data.mrmr -n 50
1,2,3,28,4,5,6,7,8,9
[blrk@projectsuse src]$ ./fast-mrmr -f /home/blrk/data/data.mrmr -n 5
1,2,3,28,4,5,6,7,8,9
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.