naywhayare changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
govg has quit [Ping timeout: 272 seconds]
govg has joined #mlpack
govg has quit [Read error: Connection reset by peer]
govg has joined #mlpack
sumedh__ has quit [Ping timeout: 248 seconds]
sumedh__ has joined #mlpack
govg has quit [Ping timeout: 264 seconds]
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
govg has quit [Ping timeout: 264 seconds]
govg has joined #mlpack
< jenkins-mlpack> Project mlpack - nightly matrix build build #503: STILL FAILING in 4 hr 12 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20nightly%20matrix%20build/503/
< jenkins-mlpack> * Ryan Curtin: Very simple change to fix build on i386.
< jenkins-mlpack> * andrewmw94: change the tree to store size_t in the nodes and keep the dataset together. Other misc changes.
govg has quit [Ping timeout: 264 seconds]
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
govg has quit [Ping timeout: 255 seconds]
govg has joined #mlpack
govg has quit [Ping timeout: 272 seconds]
govg has joined #mlpack
andrewmw94 has joined #mlpack
govg has quit [Ping timeout: 240 seconds]
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
< jenkins-mlpack> Starting build #1976 for job mlpack - svn checkin test (previous build: SUCCESS)
< andrewmw94> naywhayare: does the neighbor search stuff include a function for sorting bounds by their score according to the rule?
< naywhayare> andrewmw94: no, you'd have to implement something like that yourself. maybe arma::sort_index() can help?
< naywhayare> the cover tree uses a priority queue to order child recursion
< naywhayare> but that one is a bit weirder because cover tree nodes also have "levels", and you have to go to the higher levels first
< naywhayare> so it's not just based on score
< naywhayare> and with the binary trees, there are only two children, so no need for a sorting algorithm, just some if's
< andrewmw94> yeah. I just wanted to check before I wrote one
< andrewmw94> is there a reason to use arma::sort_index() rather than the STL?
< naywhayare> if you're using armadillo objects, then yeah
< naywhayare> but I guess you can use std::sort() with armadillo objects too
< naywhayare> convenience is the only reason I can think of
< naywhayare> I think arma::sort_index() might actually be wrapping std::sort(), but I'm not certain. I looked at the code once, but then forgot
< andrewmw94> ahh. I'm sorting the bounding objects not arma objects
govg has quit [Ping timeout: 244 seconds]
< jenkins-mlpack> Project mlpack - svn checkin test build #1976: SUCCESS in 1 hr 15 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1976/
< jenkins-mlpack> Ryan Curtin: Initial commit of simulated annealing optimizer from Zhihao Lou.
< jenkins-mlpack> Starting build #1977 for job mlpack - svn checkin test (previous build: SUCCESS)
sumedh_ has joined #mlpack
sumedh__ has quit [Ping timeout: 252 seconds]
< jenkins-mlpack> Project mlpack - svn checkin test build #1977: SUCCESS in 1 hr 14 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1977/
< jenkins-mlpack> Ryan Curtin: Minor refactoring for brevity.
< jenkins-mlpack> Starting build #1978 for job mlpack - svn checkin test (previous build: SUCCESS)
< jenkins-mlpack> Project mlpack - svn checkin test build #1978: FAILURE in 3.3 sec: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1978/
< jenkins-mlpack> andrewmw94: rectangle tree traverser
< andrewmw94> naywhayare: The errors seem to be in unrelated areas to my commit. Did I really break them?
< andrewmw94> MLPACKTest.SparseCodingTest./var/lib/jenkins/workspace/mlpack.-.svn.checkin.test/repo/src/mlpack/tests/sparse_coding_test.SparseCodingTestDictionaryStepMLPACKTest.NMFTest./var/lib/jenkins/workspace/mlpack.-.svn.checkin.test/repo/src/mlpack/tests/nmf_test.NMFAcolDistTest
< andrewmw94> never mind it was me. I saw the test failed in something else and thought that's where the problem would be. Duh.
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
< jenkins-mlpack> Starting build #1979 for job mlpack - svn checkin test (previous build: FAILURE -- last SUCCESS #1977 3 hr 58 min ago)
< naywhayare> andrewmw94: yeah, just a missing file
< naywhayare> I just page-down in the angry Jenkins email until I find where in the build log it failed; maybe that's quicker than surfing around on the semi-terrible Jenkins interface
< andrewmw94> I'm confused on neighbor_search_impl.hpp:262
< andrewmw94> typename TreeType::template SingleTreeTraverser<RuleType> traverser(rules);
< andrewmw94> it doesn't seem to construct the traverser or to cause an error
< andrewmw94> any idea what's wrong?
< naywhayare> is that line failing?
< naywhayare> or are you asking what kind of syntactical abomination that is?
< andrewmw94> the line number is probably slightly different in my code
< andrewmw94> but as I understand it, that should call the constructor
< andrewmw94> but having the constructor try to print something to stdout isn't doing anything
< andrewmw94> I run it like so:
< andrewmw94> ./allknn -r ../test_data_3_1000.csv -n neighbors_out.csv -d distances_out.csv -k 3 -v --r_tree
< naywhayare> ok; the actual ::template operator is a weird nightmare of its own that's required for something like dependent dependent classes
< naywhayare> is the code currently in svn?
< andrewmw94> I think so, other than the stuff I have to print debugging messages for me it should be the same
< naywhayare> so what I see out of allknn_main.cpp is that it'll print "completed tree building ..." on stdout
< naywhayare> but then it never creates the NeighborSearch<NearestNeighborSort, RectangleTree<...> ...> object
< naywhayare> hang on, I misspoke and am stupid
< naywhayare> did not update to latest revision
< andrewmw94> I've done that too
< andrewmw94> :)
< naywhayare> ok, let me build this and see what happens
< naywhayare> ten billion warnings, we'll have to fix those eventually...
< andrewmw94> hold on then. I don't have any warnings. Maybe I didn't commit as recently as I thought
< andrewmw94> let me do a make clean to double check
< naywhayare> are you using clang or gcc? these are mostly -Wsign-compare
< naywhayare> "comparison between signed and unsigned integer expressions"
< naywhayare> seems to be mostly in r_tree_split_impl.hpp
< andrewmw94> I'm using gcc. But I thought I changed most of those to size_t. I definitely changed quite a few
< andrewmw94> I recommitted anyways so we can have the same line numbers
< naywhayare> ok, thanks
< andrewmw94> ah. It was something wrong with my build
< andrewmw94> make clean fixes it
< naywhayare> you have it printing output now?
< andrewmw94> yes
< naywhayare> okay
< naywhayare> so I think what happened was that you have been bitten by this bug: http://www.mlpack.org/trac/ticket/322
< andrewmw94> I used to try make clean in a futile hope that I hadn't actually made the mistake. This time I figured it wasn't worth the effort.
< naywhayare> sometimes when you modify header files, and rebuild an executable or something, CMake still considers the mlpack target up to date and doesn't copy the updated headers
< naywhayare> and as a result may not actually rebuild your target even though the code may be different
< andrewmw94> ahh. Good to know
< naywhayare> I'm not sure that #322 is exactly what happened to you, but maybe something similar like that
< naywhayare> if, in the future, you come across a situation where you made a modification to your code but CMake doesn't actually recompile anything, please let me know or file a bug or something
< naywhayare> little CMake issues can be incredibly frustrating and annoying...
< andrewmw94> will do.
< andrewmw94> Also, I wanted to ask you about my solution to the sorting of nodes. I added an extra struct that's like four lines long
< andrewmw94> and then put it in the single_tree_traverser file
< andrewmw94> is that ok.
< andrewmw94> I though the struct was the cleanest way to use their sort and avoid computing the distances from points to HRects more than once
< naywhayare> yeah, the cover tree has to do something like that
< naywhayare> I think I called it the CoverTreeNodeFrame or something like that
< andrewmw94> ok, just wanted to make sure
< andrewmw94> thanks
< naywhayare> "DualCoverTreeMapEntry"
< naywhayare> just rolls right off the tongue
< andrewmw94> ok, so further modifications to rectangle_tree/single_tree_traverser_impl.hpp don't seem to recompile properly. Should I file a bug or just tell you here?
< andrewmw94> but I seem to have other problems with my builds in general now. Do you have the same issue? I may just try rebooting.
< naywhayare> yeah, let's just figure them out here
< naywhayare> what's going on? is it just not recompiling things at all?
< andrewmw94> It isn't recompiling that file unless I do make clean
< naywhayare> okay
< naywhayare> let me see if I can reproduce
< andrewmw94> but I'm also having issues with copying files every other build now:
< andrewmw94> Error copying file "/home/awells/Development/mlpack/mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_traverser.hpp" to "/home/awells/Development/mlpack/mlpack/trunk/include/mlpack/core/tree/rectangle_tree/rectangle_tree_traverser.hpp".
< andrewmw94> make[2]: *** [lib/libmlpack.so.1.0] Error 1
< andrewmw94> make[1]: *** [src/mlpack/CMakeFiles/mlpack.dir/all] Error 2
< andrewmw94> make: *** [all] Error 2
< andrewmw94> so I think I'll try rebooting
< naywhayare> hang on, are you out of disk space or something?
< andrewmw94> I just installed updates a few hours ago
< andrewmw94> no, not nearly
< naywhayare> I am able to reproduce the issue where it is not compiling when I make changes to single_tree_traverser_impl.hpp
< andrewmw94> ah
< andrewmw94> so then I won't bother rebooting
< naywhayare> well, the error while copying is not something I've ever seen
< naywhayare> I have seen the "sometimes doesn't recompile" issue though
< andrewmw94> yeah. But that can wait. I just try twice and it works the second time
< andrewmw94> although I'd really like to know why it works every other time...
< naywhayare> sumedh_ and I were working on something similar a few days back for #322, but we didn't manage to find a complete solution
< naywhayare> this is the copying a file, or the modify single_tree_traverser_impl.hpp and recompile?
< sumedh_> ohh that header file issue...
< andrewmw94> the copying. But as I said, I'll just leave that for now
< naywhayare> yeah, I'm not sure about the copying
< naywhayare> maybe a permissions issue or something? doesn't seem to make very much sense
< naywhayare> but if you can reliably reproduce it on another system, then it's worth looking into
< sumedh_> naywhayare: btw way copying file through rar works... :)
< sumedh_> *files
< naywhayare> yeah -- I want to see if I can avoid doing that, but if there's no other way, then there's not much of a choice...
< naywhayare> I have one or two things I want to try first
< sumedh_> ohh okay... let me know if you do get a solution... Even I need that...
< naywhayare> yeah, I think this fixes #322: http://www.mlpack.org/trac/changeset/16741
< naywhayare> my quick tests seemed to indicate that now the headers are copied whenever the mlpack target is built
< naywhayare> but the issue andrewmw94 is having is a bit more complex
< naywhayare> the files that the allknn target depends on are only those specified in the SOURCES variable in src/mlpack/methods/neighbor_search/CMakeLists.txt
< naywhayare> but those sources don't include any of the header files of the library itself, such as single_tree_traverser_impl.hpp
< naywhayare> sorry, I misspoke... the files that the allknn target depends on are only those specified in the add_executable(allknn ...) command
< sumedh_> ohh so only those dependent headers are getting copied now??
< naywhayare> no, this doesn't have to do with the files being copied
< sumedh_> okay then I don't understand the problem at all :(
< naywhayare> the fix I linked you to (changeset 16741) dealt with the file copying problem
< naywhayare> but this other problem is actually quite different
< sumedh_> okay... but now we should gather header files from MLPACK_INCLUDES... cause if new header file is added it won't be copied with glob...
< jenkins-mlpack> Yippie, build fixed!
< jenkins-mlpack> Project mlpack - svn checkin test build #1979: FIXED in 1 hr 14 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1979/
< jenkins-mlpack> andrewmw94: fix build
< jenkins-mlpack> Starting build #1980 for job mlpack - svn checkin test (previous build: FIXED)
< naywhayare> if a new header file is added, cmake needs to be re-run anyway
< naywhayare> a new header file means the cmake configuration needs to be changed
< naywhayare> and when cmake is re-run, it will catch the new header file with the glob command
< sumedh_> yes... user has to add that file to MLPACK_SOURCES... so actually there is no need for glob to check... we can grab all the files from sources itself...
< naywhayare> the glob makes it easier to get only the .h and .hpp files
< sumedh_> yes thats true... that can even be done with regular expression checking... but yeah right now... glob is no problem...
< sumedh_> naywhayare: yeaah... SVD is running faster now...
< sumedh_> woah... faster than NMF...
< sumedh_> i didn't expect that...
< jenkins-mlpack> Project mlpack - svn checkin test build #1980: FAILURE in 9 min 17 sec: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1980/
< jenkins-mlpack> * Ryan Curtin: Move LaplaceDistribution to mlpack::distribution and expand upon it, but then
< jenkins-mlpack> remove MoveDistributionType template parameter from SA class because really, the
< jenkins-mlpack> MoveControl() function is written specifically to work with the Laplace
< jenkins-mlpack> distribution. I was incorrect to think it could be templatized so easily. The
< jenkins-mlpack> implementation of the Laplace distribution has been inlined, too, which may help
< jenkins-mlpack> it be a little faster.
< jenkins-mlpack> * andrewmw94: commit to ease debugging
< naywhayare> jenkins-mlpack: sorry! it is fixed now
< jenkins-mlpack> naywhayare did you mean me? Unknown command 'sorry!'
< jenkins-mlpack> Use '!jenkins help' to get help!
< naywhayare> bot is incapable of accepting an apology, I guess
< andrewmw94> I should try doing that to people
< sumedh_> hehe....
< andrewmw94> "use --help for more options"
< naywhayare> haha
< sumedh_> naywhayare: how come your validation RMSE is still running ... for me its terminating at 1.23 ...
< naywhayare> no idea, maybe we are using different tolerances or different versions of the code?
< naywhayare> I'm using the one you sent me in an email
< naywhayare> like I said, whenever it finally terminates, I'll send you an exact copy of what I was using
< sumedh_> okay ... strange... there is one little problem with the abstraction... we are currently changing matrix V... so in the end it should fixed again... So should I add deinitialize function to all the termination policies??
< naywhayare> that situation is specific to the validation RMSE policy
< sumedh_> yes...
< naywhayare> and I think the best thing to do is force the user to create the ValidationRMSETermination object on their own, which will modify the matrix V and create the validation set
< jenkins-mlpack> Starting build #1981 for job mlpack - svn checkin test (previous build: FAILURE -- last SUCCESS #1979 1 hr 31 min ago)
< naywhayare> and we should document that the matrix V will have elements removed to create the validation set
< naywhayare> and it should be up to the user to make a clean copy of their data, if they need it afterwards
< naywhayare> that's my opinion, at least. it means we can make AMF::Apply() take a const matrix again, which is much better in my opinion
< sumedh_> ohh so matrix modification to be shifted to the constructor then??
< naywhayare> yeah, so what the user has to write for validation RMSE termination looks like this:
< naywhayare> arma::sp_mat V; // the user loads this on their own
< sumedh_> that will also solve another problem....
< naywhayare> ValidationRMSETermination termination(V, /* other parameters for building validation set */);
< naywhayare> AMF amf(termination, /* other parameters */);
< naywhayare> if they wanted the original V afterwards, they could make a copy before calling ValidationRMSETermination
< naywhayare> the other choice is to copy V inside of ValidationRMSETermination and split it into two matrices
< naywhayare> the training set and the validation set
< naywhayare> actually, that idea doesn't work... nevermind
< sumedh_> right now the constructor for validation RMSE accepts the number of testing points...
< sumedh_> there cannot be a default value for that...
< naywhayare> I thought that it took the number of testing points to use from each row?
< sumedh_> cause we don't know how many points are going to be there in the dataset...
< naywhayare> i.e. 3
< naywhayare> or is it something else?
< sumedh_> yes... I thought of that but in the case where there are many users this takes tremendous time...
< sumedh_> like in the case of movie lens...
< sumedh_> but in stead if we go with number like 1000 or 2000... we get equivalent result with lot of speed gain...
< sumedh_> so I think we should be able to provide both options...
< sumedh_> wait... but amf::Apply() calls a default constructor... okay.. but we can make it private .... thats no problem...
< naywhayare> hm, I see what you mean
< naywhayare> so if a user passes in a number like 2000, how will you sample from V?
< naywhayare> divide by the number of users, and sample that many points from each user, or something else?
< sumedh_> random 2000 points... completely random...
< sumedh_> will that work??
< naywhayare> that won't be the same as their idea of sampling 3 from each user, but I think that's okay
< naywhayare> since we just need to sample 3 from each user to check that we are getting the same results
< naywhayare> then we can write some tests using your idea of sampling 2000 random points to write tests for mlpack_test
< naywhayare> but Movielens1m is way too large to test on
< sumedh_> so how to give both options to the user?? either provide total points or provide number of points per user??
< naywhayare> let's just go with "provide total points"
< naywhayare> but for testing we can just make a simple modification to do 3 points for user specifically for the movielens dataset, and make sure the validation RMSE gets to the same point
< naywhayare> (0.8, I think?)
< sumedh_> and are you running the code which does not require termination policy??
< naywhayare> at the moment, yes; it's the version you mailed me
< sumedh_> yes... that is not terminating on my machine either...
< naywhayare> but is it getting better RMSE?
< naywhayare> it is in my case
< naywhayare> very slowly decreasing
< naywhayare> andrewmw94: okay... I think I understand a little better what is going on to cause your build problem where allknn doesn't actually rebuild things
< naywhayare> CMake is supposed to automatically detect the header file dependencies of a given .cpp file
< sumedh_> yes... but machine is heating up too much...
< naywhayare> you can see the dependencies of, say, allknn_main.cpp by opening the file build/src/mlpack/methods/neighbor_search/CMakeFIles/allknn.dir/depend.make
< naywhayare> sumedh_: oops, maybe ctrl-z the process and let the computer cool down for a while :)
< sumedh_> I can actually make an omlet on it... :)
< naywhayare> anyway, that list of dependencies is correct with one exception -- the file core/tree/rectangle_tree/single_tree_traverser_impl.hpp just isn't in that list of dependencies of allknn_main.cpp.o
< sumedh_> yes... too old... have to buy a better one now....
< andrewmw94> ahh, so I just add it and that should be it?
< naywhayare> well, maybe that would work, but CMake will probably overwrite your change
< naywhayare> so I am trying to figure out how to convince CMake to automatically add that file
< naywhayare> or figure out why it ignored single_tree_traverser_impl.hpp in the first place
< naywhayare> is it missing in your build directory too?
< andrewmw94> no, it's in trunk/src/mlpack/core/tree/CMakeLists.txt
< naywhayare> yeah, it's listed there
< naywhayare> but open the file build/src/mlpack/methods/neighbor_search/CMakeFIles/allknn.dir/depend.make
< naywhayare> that's a file generated by CMake that lists the dependencies of the allknn_main.cpp.o target (so, basically, everything that will trigger a rebuild of allknn_main.cpp)
< andrewmw94> that one lists the dual_tree one but not the single_tree
< naywhayare> http://public.kitware.com/Bug/bug_relationship_graph.php?bug_id=14697&graph=dependency -- maybe this is relevant? I'm not sure yet
< andrewmw94> scratch that. Single tree is lower down
< andrewmw94> it looks like this:
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/dual_tree_traverser.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic_impl.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/r_tree_split.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/r_tree_split_impl.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/rectangle_tree.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/rectangle_tree_impl.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/single_tree_traverser.hpp
< andrewmw94> src/mlpack/methods/neighbor_search/CMakeFiles/allknn.dir/allknn_main.cpp.o: src/mlpack/../mlpack/core/tree/rectangle_tree/traits.hpp
< naywhayare> no single_tree_traverser_impl.hpp
< naywhayare> (or dual_tree_traverser_impl.hpp, but that isn't used, I don't think)
< andrewmw94> yes. just the *traverser.hpp files
< naywhayare> so if you modify single_tree_traverser_impl.hpp (try it -- add a syntax error) and type 'make allknn', then assuming bin/allknn exists, CMake won't build anything
< naywhayare> but it picks up the traverser implementations for the cover tree and the binary space tree
< andrewmw94> yeah, syntax errors don't help
< andrewmw94> funny to be writing that
< andrewmw94> would it be because it has exactly the same name as the ones in dual tree?
< andrewmw94> wild and improbably guess
< andrewmw94> sorry, Binary Space tree, not dual tree
< naywhayare> I thought that might be the case; the binary space tree ones don't have the _impl files either
< naywhayare> but the cover tree does
< naywhayare> I managed to get depend.make to include rectangle_tree/single_tree_traverser_impl.hpp by explicitly adding that as an include to src/mlpack/core/tree/rectangle_tree.hpp
< naywhayare> but that still doesn't expose the actual issue of why CMake is ignoring it
< naywhayare> yeah, I think your guess is right
< andrewmw94> I really don't know much about Cmake, but perhaps this helps: http://stackoverflow.com/questions/22352876/does-cmake-ignore-hpp-file-changes
< naywhayare> I moved rectangle_tree/single_tree_traverser_impl.hpp to rectangle_tree/single_tree_traverser_impl_blah.hpp and removed it from src/mlpack/core/tree/rectangle_tree.hpp (so src/mlpack/core/tree/rectangle_tree.hpp is the same as what is in svn)
< naywhayare> and then depend.make had single_tree_traverser_impl_blah.hpp in it
< naywhayare> the first answer is correct, but we are using include_directories()
< naywhayare> I think I can reduce this to a simple test case, then file a cmake bug
< andrewmw94> perhaps I change the name to something like single_tree_traverser__impl.hpp for now
< andrewmw94> to keep the syntax similar and make it work
< andrewmw94> (note the double __)
< naywhayare> nah, if anything adding the _impl files to src/mlpack/core/tree/rectangle_tree.hpp is probably the better solution
< naywhayare> because explicitly specifying them there seems to make CMake pick them up okay
< naywhayare> I bet what is happening is this:
< andrewmw94> yeah. I forgot that works too
< andrewmw94> I assume we should do the same for BinarySpaceTree
< naywhayare> CMake scans all the #includes of the .cpp file and then all of its #includes recursively, generating a list
< sumedh_> naywhayare: I am down to 0.80 in 60 secs...
< naywhayare> but it just has the actual include file name, not the path
< naywhayare> so then it removes duplicates... and wipes out all of the other single_tree_traverser_impl.hpp files, and only leaves one behind
< andrewmw94> yeah, sounds probable.
< sumedh_> but I am always returning false in termination policy...
< naywhayare> but if, somewhere, we write "#include "rectangle_tree/single_tree_traverser_impl.hpp"", then that won't get wiped out
< naywhayare> sumedh_: hm; so I know that the termination should happen when the validation RMSE starts to increase
< andrewmw94> should we count on the cover tree always being there or should I add something like that for it too?
< naywhayare> how much does it increase before you get to 0.80?
< naywhayare> andrewmw94: we should probably add one for the cover tree too. the actual include it chooses probably has to do with the lunar cycle
< naywhayare> and we don't have any support code for that
< andrewmw94> next release
< naywhayare> haha
< sumedh_> very little ... here and there...
< naywhayare> sumedh_: ok, how much magnitude increase in RMSE? on the order of 1e-5, or 1e-3, or bigger/smaller?
< sumedh_> no... bigger but they are like kinks... 2.05, 1.78, 1.73, 1.80, 1.72, 1.74...
< sumedh_> 1.65...
< sumedh_> then again decreasing...
< sumedh_> so its one point jump...
< sumedh_> some smoothening is required...
< naywhayare> yeah, what if we change the termination condition to require two successive increases in RMSE?
< naywhayare> do you think that would fix it?
< sumedh_> okay... three will definitely solve it...
< naywhayare> I'm glad I found the bug, because this means I don't have to go through and make my own bug report
< sumedh_> naywhayare: with 3... 0.87... :) in 80 seconds....
< naywhayare> if it's jumping around like 1.78, 1.73, 1.80 then maybe the momentum or step size is too large?
< sumedh_> yes... but those jumps are only at the start... after that... its a almost smooth decrease...
< sumedh_> i will try it with different momentum...
< sumedh_> yes.. you are right... with momentum 0.5... its a smooth decrease...
< naywhayare> I think I am going to file a CMake bug anyway, because this situation may be a little different, and the one I linked to is backlogged which means it'll never be addressed...
< sumedh_> but now not getting till 0.87... very slow decrease...
< sumedh_> still at 0.97...
< naywhayare> yeah, a slower momentum will mean slower convergence
< naywhayare> that's the problem with optimizers; they are very picky about their parameters :)
< sumedh_> I guess 3 increase policy seems fine....
< sumedh_> I mean its faster...
< sumedh_> and I shifted test point generation to constructor...
< sumedh_> I agree that const MatType& is better in Apply()
< jenkins-mlpack> Yippie, build fixed!
< jenkins-mlpack> Project mlpack - svn checkin test build #1981: FIXED in 1 hr 14 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1981/
< jenkins-mlpack> * Ryan Curtin: Remove now-unnecessary include.
< jenkins-mlpack> * Ryan Curtin: Create separate target for moving mlpack headers. This should fix #322.
< jenkins-mlpack> Starting build #1982 for job mlpack - svn checkin test (previous build: FIXED)
< sumedh_> naywhayare: should I make the commit with 3 increase termination policy??
< sumedh_> build is clean...
< sumedh_> have modified tolerance termination, validation RMSE termination and implementation of SVDBatch...
< naywhayare> yeah, go ahead and commit it
< naywhayare> jenkins will tell you if there is a problem :)
< jenkins-mlpack> Project mlpack - svn checkin test build #1982: SUCCESS in 1 hr 14 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1982/
< jenkins-mlpack> andrewmw94: work arround for CMake bug.
< jenkins-mlpack> Starting build #1983 for job mlpack - svn checkin test (previous build: SUCCESS)
< jenkins-mlpack> Project mlpack - svn checkin test build #1983: SUCCESS in 1 hr 16 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1983/
< jenkins-mlpack> * sumedhghaisas: * faster implementation of SVDBatchWithMomentum
< jenkins-mlpack> * tolerance termination policy is modified according to new policy
< jenkins-mlpack> * test point selection in validation RMSE termination is shifted to constructor
< jenkins-mlpack> * Ryan Curtin: Rename parameters, clean up documentation; very minor tweaks. No functionality changes.
< jenkins-mlpack> * Ryan Curtin: Rearrange parameters -- maxIterations is probably the most likely to be changed, and also maxIterations tends to be the first parameter for other algorithms.
< jenkins-mlpack> * Ryan Curtin: Remove documentation for MoveDistributionType.