[mlpack-svn] [MLPACK] #191: bin/allknn failing for some data sets

MLPACK Trac trac at coffeetalk-1.cc.gatech.edu
Thu Jan 26 14:25:58 EST 2012


#191: bin/allknn failing for some data sets
-----------------------------------+----------------------------------------
  Reporter:  pram                  |        Owner:              
      Type:  defect                |       Status:  new         
  Priority:  major                 |    Milestone:  mlpack 1.0.1
 Component:  mlpack                |   Resolution:              
  Keywords:  mlpack allknn allkfn  |     Blocking:              
Blocked By:                        |  
-----------------------------------+----------------------------------------
Changes (by rcurtin):

  * keywords:  => mlpack allknn allkfn


Old description:

> The binary is compiled in debug mode on no.cc. I am using the following
> files:
> -r /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv
> (n = 3706, d -= 51)
> -q /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv
> (n = 6040, d = 51)
>
> These are the commands I used and the following output:
>
> 1) Dual-tree: ./bin/allknn -r
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv -q
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv -k 1
> -d /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv -n
> /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv -v
>
> Output:
> [DEBUG] Compiled with debugging symbols.
> [INFO ] Loading
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_5
> 0.csv' as CSV data.
> [INFO ] Loaded reference data from
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv'.
> [INFO ] Building reference tree...
> [INFO ] Loading
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv' as
> CSV data.
> [INFO ] Loaded query data from
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv'.
> [INFO ] Building query tree...
> [INFO ] Tree built.
> [INFO ] Computing 1 nearest neighbors...
> [DEBUG] [bt]: (1) ./bin/allknn :
> mlpack::bound::HRectBound<2>::MinDistance(mlpack::bound::HRectBound<2>
> const&) const+0x36 [0x42497c]
> [DEBUG] [bt]: (2) ./bin/allknn : double
> mlpack::neighbor::NearestNeighborSort::BestNodeToNodeDistance<mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> >
> >(mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> > const*,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> > const*)+0x36 [0x424aee]
> [DEBUG] [bt]: (3) ./bin/allknn :
> mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
> mlpack::metric::LMetric<2, false>,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> >
> >::ComputeDualNeighborsRecursion(mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> >*,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> >*, double, arma::Mat<unsigned long>&,
> arma::Mat<double>&)+0x44a [0x42c442]
> [DEBUG] [bt]: (4) ./bin/allknn :
> mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
> mlpack::metric::LMetric<2, false>,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> >
> >::ComputeDualNeighborsRecursion(mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> >*,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> >*, double, arma::Mat<unsigned long>&,
> arma::Mat<double>&)+0x597 [0x42c58f]
> [DEBUG] [bt]: (5) ./bin/allknn :
> mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
> mlpack::metric::LMetric<2, false>,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> > >::Search(unsigned long, arma::Mat<unsigned long>&,
> arma::Mat<double>&)+0x63c [0x431f2c]
> [DEBUG] [bt]: (6) ./bin/allknn : main+0x9db [0x417a81]
> [DEBUG] [bt]: (7) /lib64/libc.so.6 : __libc_start_main+0xf4
> [0x318ac1d994]
> [DEBUG] [bt]: (8) ./bin/allknn : __gxx_personality_v0+0x1e9 [0x416a89]
> [DEBUG] Assert Failed.
> [INFO ]
> [INFO ] Execution parameters:
> [INFO ]   distances_file:
> /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv
> [INFO ]   help: false
> [INFO ]   info: ""
> [INFO ]   k: 1
> [INFO ]   leaf_size: 20
> [INFO ]   naive: false
> [INFO ]   neighbors_file:
> /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv
> [INFO ]   query_file:
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv
> [INFO ]   reference_file:
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv
> [INFO ]   single_mode: false
> [INFO ]   verbose: true
> [INFO ]
> [INFO ] Program timers:
> [INFO ]   computing_neighbors: 1327604346.859360s (15365 days, 18 hrs, 59
> mins,6.8secs)
> [INFO ]   total_time: 1.003714s
> [INFO ]   tree_building: 0.106337s
>
> 2) Naive: ./bin/allknn -r
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv -q
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv -k 1
> -d /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv -n
> /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv -Nv
>
> Output:
> [DEBUG] Compiled with debugging symbols.
> [INFO ] Loading
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv' as
> CSV data.
> [INFO ] Loaded reference data from
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv'.
> [INFO ] Building reference tree...
> [INFO ] Loading
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv' as
> CSV data.
> [INFO ] Loaded query data from
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv'.
> [INFO ] Building query tree...
> [INFO ] Tree built.
> [INFO ] Computing 1 nearest neighbors...
>
> error: Mat::unsafe_col(): out of bounds
>
> terminate called after throwing an instance of 'std::logic_error'
>   what():
> Aborted
>
> (gdb) run
> error: Mat::unsafe_col(): out of bounds
>
> terminate called after throwing an instance of 'std::logic_error'
>   what():
>
> Program received signal SIGABRT, Aborted.
> 0x000000318ac30265 in raise () from /lib64/libc.so.6
>
> (gdb) where
> #0  0x000000318ac30265 in raise () from /lib64/libc.so.6
> #1  0x000000318ac31d10 in abort () from /lib64/libc.so.6
> #2  0x000000318dcbed14 in __gnu_cxx::__verbose_terminate_handler() ()
>    from /usr/lib64/libstdc++.so.6
> #3  0x000000318dcbce16 in ?? () from /usr/lib64/libstdc++.so.6
> #4  0x000000318dcbce43 in std::terminate() () from
> /usr/lib64/libstdc++.so.6
> #5  0x000000318dcbcf2a in __cxa_throw () from /usr/lib64/libstdc++.so.6
> #6  0x0000000000422e78 in arma::arma_stop<char const*>
> (x=@0x7fffffffd128)
>     at /usr/include/armadillo_bits/debug.hpp:117
> #7  0x00000000004230de in arma::arma_check<char [33]> (state=true, x=...)
>     at /usr/include/armadillo_bits/debug.hpp:346
> #8  0x000000000042baf2 in arma::Mat<double>::unsafe_col
> (this=0x7fffffffdab0,
>     col_num=0) at /usr/include/armadillo_bits/Mat_meat.hpp:1995
> #9  0x000000000042bbca in
> mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
> mlpack::metric::LMetric<2, false>,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> > >::ComputeBaseCase (this=0x6491c0,
>     queryNode=0x7fffffffde70, referenceNode=0x7fffffffdeb0,
> neighbors=...,
>     distances=...)
>     at
> /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp:335
> #10 0x000000000042c0dd in
> mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
> mlpack::metric::LMetric<2, false>,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> > >::ComputeDualNeighborsRecursion (
>     this=0x6491c0, queryNode=0x7fffffffde70,
> referenceNode=0x7fffffffdeb0,
>     lowerBound=0, neighbors=..., distances=...)
>     at
> /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp:400
> #11 0x0000000000431f2c in
> mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
> mlpack::metric::LMetric<2, false>,
> mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
> mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
> arma::Mat<double> > >::Search (this=0x6491c0, k=1,
>     resultingNeighbors=..., distances=...)
>     at
> /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp:213
> #12 0x0000000000417a81 in main (argc=12, argv=0x7fffffffe228)
>     at
> /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp:164
>

>

> 3) Single-tree:./bin/allknn -r
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv -q
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv -k 1
> -d /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv -n
> /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv -sv
>
> Output:
> [DEBUG] Compiled with debugging symbols.
> [INFO ] Loading
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv' as
> CSV data.
> [INFO ] Loaded reference data from
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv'.
> [INFO ] Building reference tree...
> [INFO ] Loading
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv' as
> CSV data.
> [INFO ] Loaded query data from
> '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv'.
> [INFO ] Building query tree...
> [INFO ] Tree built.
> [INFO ] Computing 1 nearest neighbors...
> [INFO ] Neighbors computed.
> [INFO ] Re-mapping indices...
> [INFO ] Saving CSV data to
> '/net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv'.
> [INFO ] Saving CSV data to
> '/net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv'.
> [INFO ]
> [INFO ] Execution parameters:
> [INFO ]   distances_file:
> /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv
> [INFO ]   help: false
> [INFO ]   info: ""
> [INFO ]   k: 1
> [INFO ]   leaf_size: 20
> [INFO ]   naive: false
> [INFO ]   neighbors_file:
> /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv
> [INFO ]   query_file:
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv
> [INFO ]   reference_file:
> /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv
> [INFO ]   single_mode: true
> [INFO ]   verbose: true
> [INFO ]
> [INFO ] Program timers:
> [INFO ]   computing_neighbors: 0.000012s
> [INFO ]   total_time: 0.997204s
> [INFO ]   tree_building: 0.105990s
>
> Everything seems fine, but when you check the output files, they are
> empty:
> -rw-r--r-- 1 pram fastlab 0 Jan 26 14:04 ../maxip/movielens_nn.csv
> -rw-r--r-- 1 pram fastlab 0 Jan 26 14:04 ../maxip/movielens_nn_dist.csv
>

> The binary has similar behavior with another data set I tried:
>
> -r /net/hg200/pram/datasets/nn_datasets/optd_r.csv (n = 1379, d = 64)
> -q /net/hg200/pram/datasets/nn_datasets/optd_q.csv (n = 450, d = 64)
>
> Failing for Naive, and empty output files for single and dual-tree
> search.

New description:

 The binary is compiled in debug mode on no.cc. I am using the following
 files:
 -r /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv (n
 = 3706, d -= 51)
 -q /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv (n
 = 6040, d = 51)

 These are the commands I used and the following output:

 1) Dual-tree: ./bin/allknn -r
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv -q
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv -k 1
 -d /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv -n
 /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv -v

 Output:
 {{{
 [DEBUG] Compiled with debugging symbols.
 [INFO ] Loading
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_5
 0.csv' as CSV data.
 [INFO ] Loaded reference data from
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv'.
 [INFO ] Building reference tree...
 [INFO ] Loading
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv' as
 CSV data.
 [INFO ] Loaded query data from
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv'.
 [INFO ] Building query tree...
 [INFO ] Tree built.
 [INFO ] Computing 1 nearest neighbors...
 [DEBUG] [bt]: (1) ./bin/allknn :
 mlpack::bound::HRectBound<2>::MinDistance(mlpack::bound::HRectBound<2>
 const&) const+0x36 [0x42497c]
 [DEBUG] [bt]: (2) ./bin/allknn : double
 mlpack::neighbor::NearestNeighborSort::BestNodeToNodeDistance<mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> >
 >(mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> > const*,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> > const*)+0x36 [0x424aee]
 [DEBUG] [bt]: (3) ./bin/allknn :
 mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
 mlpack::metric::LMetric<2, false>,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> >
 >::ComputeDualNeighborsRecursion(mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> >*,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> >*, double, arma::Mat<unsigned long>&,
 arma::Mat<double>&)+0x44a [0x42c442]
 [DEBUG] [bt]: (4) ./bin/allknn :
 mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
 mlpack::metric::LMetric<2, false>,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> >
 >::ComputeDualNeighborsRecursion(mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> >*,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> >*, double, arma::Mat<unsigned long>&,
 arma::Mat<double>&)+0x597 [0x42c58f]
 [DEBUG] [bt]: (5) ./bin/allknn :
 mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
 mlpack::metric::LMetric<2, false>,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> > >::Search(unsigned long, arma::Mat<unsigned long>&,
 arma::Mat<double>&)+0x63c [0x431f2c]
 [DEBUG] [bt]: (6) ./bin/allknn : main+0x9db [0x417a81]
 [DEBUG] [bt]: (7) /lib64/libc.so.6 : __libc_start_main+0xf4 [0x318ac1d994]
 [DEBUG] [bt]: (8) ./bin/allknn : __gxx_personality_v0+0x1e9 [0x416a89]
 [DEBUG] Assert Failed.
 [INFO ]
 [INFO ] Execution parameters:
 [INFO ]   distances_file:
 /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv
 [INFO ]   help: false
 [INFO ]   info: ""
 [INFO ]   k: 1
 [INFO ]   leaf_size: 20
 [INFO ]   naive: false
 [INFO ]   neighbors_file:
 /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv
 [INFO ]   query_file:
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv
 [INFO ]   reference_file:
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv
 [INFO ]   single_mode: false
 [INFO ]   verbose: true
 [INFO ]
 [INFO ] Program timers:
 [INFO ]   computing_neighbors: 1327604346.859360s (15365 days, 18 hrs, 59
 mins,6.8secs)
 [INFO ]   total_time: 1.003714s
 [INFO ]   tree_building: 0.106337s
 }}}

 2) Naive: ./bin/allknn -r
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv -q
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv -k 1
 -d /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv -n
 /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv -Nv

 Output:
 {{{
 [DEBUG] Compiled with debugging symbols.
 [INFO ] Loading
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv' as
 CSV data.
 [INFO ] Loaded reference data from
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv'.
 [INFO ] Building reference tree...
 [INFO ] Loading
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv' as
 CSV data.
 [INFO ] Loaded query data from
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv'.
 [INFO ] Building query tree...
 [INFO ] Tree built.
 [INFO ] Computing 1 nearest neighbors...

 error: Mat::unsafe_col(): out of bounds

 terminate called after throwing an instance of 'std::logic_error'
   what():
 Aborted

 (gdb) run
 error: Mat::unsafe_col(): out of bounds

 terminate called after throwing an instance of 'std::logic_error'
   what():

 Program received signal SIGABRT, Aborted.
 0x000000318ac30265 in raise () from /lib64/libc.so.6

 (gdb) where
 #0  0x000000318ac30265 in raise () from /lib64/libc.so.6
 #1  0x000000318ac31d10 in abort () from /lib64/libc.so.6
 #2  0x000000318dcbed14 in __gnu_cxx::__verbose_terminate_handler() ()
    from /usr/lib64/libstdc++.so.6
 #3  0x000000318dcbce16 in ?? () from /usr/lib64/libstdc++.so.6
 #4  0x000000318dcbce43 in std::terminate() () from
 /usr/lib64/libstdc++.so.6
 #5  0x000000318dcbcf2a in __cxa_throw () from /usr/lib64/libstdc++.so.6
 #6  0x0000000000422e78 in arma::arma_stop<char const*> (x=@0x7fffffffd128)
     at /usr/include/armadillo_bits/debug.hpp:117
 #7  0x00000000004230de in arma::arma_check<char [33]> (state=true, x=...)
     at /usr/include/armadillo_bits/debug.hpp:346
 #8  0x000000000042baf2 in arma::Mat<double>::unsafe_col
 (this=0x7fffffffdab0,
     col_num=0) at /usr/include/armadillo_bits/Mat_meat.hpp:1995
 #9  0x000000000042bbca in
 mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
 mlpack::metric::LMetric<2, false>,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> > >::ComputeBaseCase (this=0x6491c0,
     queryNode=0x7fffffffde70, referenceNode=0x7fffffffdeb0, neighbors=...,
     distances=...)
     at
 /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp:335
 #10 0x000000000042c0dd in
 mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
 mlpack::metric::LMetric<2, false>,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> > >::ComputeDualNeighborsRecursion (
     this=0x6491c0, queryNode=0x7fffffffde70, referenceNode=0x7fffffffdeb0,
     lowerBound=0, neighbors=..., distances=...)
     at
 /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp:400
 #11 0x0000000000431f2c in
 mlpack::neighbor::NeighborSearch<mlpack::neighbor::NearestNeighborSort,
 mlpack::metric::LMetric<2, false>,
 mlpack::tree::BinarySpaceTree<mlpack::bound::HRectBound<2>,
 mlpack::neighbor::QueryStat<mlpack::neighbor::NearestNeighborSort>,
 arma::Mat<double> > >::Search (this=0x6491c0, k=1,
     resultingNeighbors=..., distances=...)
     at
 /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp:213
 #12 0x0000000000417a81 in main (argc=12, argv=0x7fffffffe228)
     at
 /net/hu12/pram/work_space/mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp:164
 }}}



 3) Single-tree:./bin/allknn -r
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv -q
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv -k 1
 -d /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv -n
 /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv -sv

 Output:
 {{{
 [DEBUG] Compiled with debugging symbols.
 [INFO ] Loading
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv' as
 CSV data.
 [INFO ] Loaded reference data from
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv'.
 [INFO ] Building reference tree...
 [INFO ] Loading
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv' as
 CSV data.
 [INFO ] Loaded query data from
 '/net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv'.
 [INFO ] Building query tree...
 [INFO ] Tree built.
 [INFO ] Computing 1 nearest neighbors...
 [INFO ] Neighbors computed.
 [INFO ] Re-mapping indices...
 [INFO ] Saving CSV data to
 '/net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv'.
 [INFO ] Saving CSV data to
 '/net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv'.
 [INFO ]
 [INFO ] Execution parameters:
 [INFO ]   distances_file:
 /net/hg200/pram/wrkspc_data/maxip/movielens_nn_dist.csv
 [INFO ]   help: false
 [INFO ]   info: ""
 [INFO ]   k: 1
 [INFO ]   leaf_size: 20
 [INFO ]   naive: false
 [INFO ]   neighbors_file:
 /net/hg200/pram/wrkspc_data/maxip/movielens_nn.csv
 [INFO ]   query_file:
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensUsers_50.csv
 [INFO ]   reference_file:
 /net/hg200/pram/datasets/ip_datasets/MovieLens/MovieLensItems_50.csv
 [INFO ]   single_mode: true
 [INFO ]   verbose: true
 [INFO ]
 [INFO ] Program timers:
 [INFO ]   computing_neighbors: 0.000012s
 [INFO ]   total_time: 0.997204s
 [INFO ]   tree_building: 0.105990s
 }}}

 Everything seems fine, but when you check the output files, they are
 empty:
 -rw-r--r-- 1 pram fastlab 0 Jan 26 14:04 ../maxip/movielens_nn.csv
 -rw-r--r-- 1 pram fastlab 0 Jan 26 14:04 ../maxip/movielens_nn_dist.csv


 The binary has similar behavior with another data set I tried:

 -r /net/hg200/pram/datasets/nn_datasets/optd_r.csv (n = 1379, d = 64)
 -q /net/hg200/pram/datasets/nn_datasets/optd_q.csv (n = 450, d = 64)

 Failing for Naive, and empty output files for single and dual-tree search.

--

Comment:

 Where can I find these datasets?  I can't reproduce this particular bug
 with 'test_data_3_1000.csv' (but I managed to find another, which is a bit
 embarrassing...).

-- 
Ticket URL: <https://trac.research.cc.gatech.edu/fastlab/ticket/191#comment:1>
MLPACK <www.fast-lab.org>
MLPACK is an intuitive, fast, and scalable C++ machine learning library developed by the FASTLAB at Georgia Tech under Dr. Alex Gray.


More information about the mlpack-svn mailing list