verne.freenode.net 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/
< rcurtin> keonkim: if we are going to change the executables to not provide a default train and test set filename, should we close #669?
< keonkim> rcurtin: Yup I closed #669
Rodya has quit [Ping timeout: 252 seconds]
travis-ci has joined #mlpack
< travis-ci> mlpack/mlpack#886 (master - 2629a4f : Ryan Curtin): The build was broken.
travis-ci has left #mlpack []
Rodya has joined #mlpack
benchmark has joined #mlpack
benchmark has quit [Client Quit]
benchmark has joined #mlpack
benchmark has quit [Client Quit]
< rcurtin> interesting, the benchmark system didn't say anything about any datasets ...
Mathnerd314 has quit [Ping timeout: 250 seconds]
gtank has quit [Remote host closed the connection]
lozhnikov_ has joined #mlpack
lozhnikov has quit [Ping timeout: 264 seconds]
lozhnikov_ is now known as lozhnikov
gtank has joined #mlpack
gtank has quit [Remote host closed the connection]
sumedhghaisas has joined #mlpack
gtank has joined #mlpack
marcosirc has joined #mlpack
< marcosirc> rcurtin: in NeighborSearch, when the methodSearch(Tree* queryTree, ...) uses the given tree, it is assuming that stats there were intialized to their initial values.
< marcosirc> Shouldn't we add a comment about this to the documentation?
< marcosirc> I mean, if we do:
< marcosirc> KNN knn;
< marcosirc> KNN::Tree queryTree(querySet);
< marcosirc> knn.Train(someReferenceSet);
< marcosirc> knn.Search(queryTree,.....);
< marcosirc> knn.Train(someDifferentReferenceSet);
< marcosirc> knn.Search(queryTree,.....);
< marcosirc> The last search will probably give incorrect results, because the queryTree holds old unrelated statistic values for the bounds. I mean, it uses bound values from the first referenceSet to search in the second referenceSet.
< rcurtin> marcosirc: sure, if you want to add a comment pointing that out that would be helpful
< rcurtin> I know that the NeighborSearch class and other classes that use dual-tree algorithms reset allthe stats in the query tree
< rcurtin> but I think you are right that the necessity of resetting the bounds is not detailed
< marcosirc> rcurtin: Ok! I will add that, thanks.
< rcurtin> actually hang on
< rcurtin> let me read the code a bit
< rcurtin> yeah, for KNN this is already handled
< rcurtin> see the 'treeNeedsReset' member
< rcurtin> so I am not sure where to add any documentation of this
< rcurtin> if you are using the KNN class (or other xlasses that use dual tree algorithms) you can call Searxh() however many times with no issue
< rcurtin> 
< rcurtin> Search()*, sorry
< marcosirc> Yes, I have been reading the code too. But that treeNeedsReset cares about the reference tree.
< marcosirc> not the query tree.
< marcosirc> I mean, if we do dual tree search, we take into account the bounds in the query node.
< rcurtin> hmm this looks like a bug
< rcurtin> I wrote a test to do knn search twice to check this
< rcurtin> but I wonder if I did that test in monochromatic mode (query set == ref set)
< rcurtin> if so then resetting the reference tree would work for that situation...
< rcurtin> let me see...
< rcurtin> yep, that is exactly what the test does... the test even says we need to reset the reference tree bounds
< rcurtin> but that is not true, only the query set bounds matter
< rcurtin> another nice bug catch :)
< rcurtin> would you like to fix this one, or should I?
< marcosirc> Thanks, sure! I will work on that right now.
mentekid has quit [Ping timeout: 260 seconds]
< rcurtin> it seems like, with the amount of bugs you are filing, it is time for me to stop committing directly to master and instead open PRs for the changes I am making, so at the very least I can look over those changes the following day before merging them
< rcurtin> finding, not filing, but I guess, it does not make much difference either way :)
< marcosirc> haha, at least for me, that I am not native english speaking :)
sumedhghaisas has quit [Ping timeout: 258 seconds]
mentekid has joined #mlpack
Stellar_Mind has joined #mlpack
marcosirc has quit [Quit: WeeChat 1.4]
travis-ci has joined #mlpack
< travis-ci> mlpack/mlpack#888 (master - ee95e20 : Ryan Curtin): The build is still failing.
travis-ci has left #mlpack []
Mathnerd314 has joined #mlpack
travis-ci has joined #mlpack
< travis-ci> mlpack/mlpack#890 (master - a2440f1 : Ryan Curtin): The build was fixed.
travis-ci has left #mlpack []
benchmark has joined #mlpack
benchmark has quit [Client Quit]
< zoq> hm, I'll take a look at the issue in a few hours
nilay has joined #mlpack
< nilay> zoq, hello i need help with a bit of debugging.. when i declare a simple cube and then run the program, it gives me following error: *** Error in `./foo': double free or corruption (out): 0x00007ffd832d6430 ***
< nilay> i am not doing any memory management myself, and when i remove the declaration the program runs just fine. so i don't know why this is happening
< nilay> is this something people get?
Stellar_Mind has quit [Ping timeout: 260 seconds]
< nilay> ok, now i know why i get the error. when i call a function f twice, it tries to create a cube with the same name on heap again and throws this error
benchmark has joined #mlpack
benchmark has quit [Client Quit]
< nilay> zoq: how do i resolve this, armadillo does not provide destructors
sumedhghaisas has joined #mlpack
< zoq> nilay: Hello, the error sounds weird, can you post the code?
< nilay> ok i'll post the whole code on gist.
< nilay> zoq: see comment on line 689
< zoq> nilay: does arma::cube reg_ch = arma::cube(rsize, csize, num_channels); arma::cube ss_ch = arma::cube(rsize, csize, num_channels); work?
< nilay> No
< nilay> wait sorry let me try..
< nilay> no it doesn't work
< nilay> can we not delete the cube?
< zoq> nilay: That's not the problem, are you sure it's not the GetShrunkChannels function?
< nilay> zoq: did it work for you? you only need to change the location of example data to run the code
< keonkim> I am trying to migrate my dev environment to Visual Studio from Vim.
< nilay> zoq: 100% sure. you can try declaring arma::cube reg_ch, ss_ch in GetShrunkChannels function. It'll give you the same error.
< nilay> zoq: when you try to run the code, it prints "returned from GetShrunkChannels" once. but the second time, this redeclaration of cube on heap with same name thing happens and it doesn't work.
< keonkim> I used nuget to install all the boost prereqs, but I am stuck on building armadillo
< zoq> nilay: I'm on the phone right now, so I can't test the code, just give me a few hours.
< nilay> zoq: ok, in your own time :)
< zoq> keonkim: You could take a look at line 24 and 25 in https://github.com/mlpack/mlpack/blob/master/.appveyor.yml, if that doesn't help, let me know.
< zoq> keonkim: it's also a good idea to install OpenBLAS e.g using nuget
< sumedhghaisas> rcurtin: Hey Ryan... had a doubt about the file ns_model_impl.hpp
< sumedhghaisas> I am seeing too much repetitive code... why not we have a function... getTreePointer or something like that...
< sumedhghaisas> and then perform the required operation on it??
< keonkim> zoq: are lines 24 and 25 connected?
< zoq> keonkim: yes line 24 calls cmake (configure) and line 25 calls make or MSBuild.exe on windows (build)
< zoq> nilay: Okay, before I take a deeper look at the code, one last try :) I'm pretty sure the Histogram function should return something.
< nilay> oops, why doesn't compiler show this error when compiling..
< nilay> zoq: wow, it works now..you did it from the phone, i couldn't do it from a computer :p
< zoq> nilay: actually, I borrowed a tablet, the screen of my phone is way too tiny
< nilay> zoq: phone/tablet it's all the same! i don't know how you do it, there was so many lines of code :)
< zoq> nilay: luck
< nilay> zoq: why doesn't armadillo have destructors? there should be some mechanism via which we reclaim memory from useless matrices?
< nilay> zoq: i know, they use metaprogramming to create as few copies as possible, but a user (like me) may create copies and should have a way to reclaim that memory.
< zoq> nilay: you could write arma::mat* f = new arma::mat(10, 10) and to 'reclaim' the memory delete f;
< nilay> zoq: if i don't use new, i can't delete?
< nilay> because i tried deleting it didn't work
< nilay> zoq: i mean, if i use the constructors they provide.
< zoq> nilay: If you create a matrix using arma::mat f(10, 10) it should free anything automatically, I'm not sure, you 'ever' have to use delete.
< nilay> zoq: how does it do it? no garbage collection in c++
< keonkim> zoq: it works now thanks :)
< zoq> nilay: right, but there is a difference between stack and heap
< zoq> keonkim: great :)
< keonkim> great to be back to windows
< nilay> zoq: but the big matrices must be created on heap, right? there is only so much stack memory.
sumedhghaisas has quit [Ping timeout: 264 seconds]
< nilay> zoq: in the ViewAsWindows function sketch that you wrote, if our location (x,y) is on the border of the image, then it will throw error. so i was asking, should i use CopyMakeBorder and increase the size of each channel slice by patchSize?
< nilay> because we would need to do something about the boundaries of image. we can either use the reflection border that is there, or i can write a new function, with some other border type that would suit our purpose better.
< zoq> nilay: reusing the CopyMakeBorder makes sense
< nilay> zoq: ok