ChanServ changed the topic of #mlpack to: "mlpack: a fast, flexible machine learning library :: We don't always respond instantly, but we will respond; please be patient :: Logs at http://www.mlpack.org/irc/
jeffin143_ has joined #mlpack
< jeffin143_> lozhnikov : never knew what a specialization meant, went through some article and came up with this, Please take a look and let me know if this is what you were looking for
< jeffin143_> Here it is : https://pastebin.com/FF8KhmwA
< jeffin143_> Also, if this the what you were looking for, then how to enable it for specific boost version
< jeffin143_> Should i do like i did for boost::string_view, include boost_version.hpp and write a if condition (version < 16100) and fill in the stuff inside the if.
< jeffin143_> Also which file should have the specialization defination, since i guess string_view and map would be used in all of our string utility function
< jeffin143_> i guess the extra backported file which we just wrote that includes some file may be the write place !
< jeffin143_> right* :)
jeffin143_ has quit [Quit: Page closed]
xiaohong has joined #mlpack
xiaohong has quit [Read error: Connection reset by peer]
sreenik has joined #mlpack
< lozhnikov> jeffin143_: Yes, I meant exactly that. I think you can use the same file boost_backport_string_view.hpp for the definition.
jeffin143_ has joined #mlpack
< jeffin143_> lozhnikov , rcurtin , zoq : could you please help me debug this code : https://pastebin.com/ssWF1nLb
< jeffin143_> I guess if i am correct the string_view hold the pointer to the string
< jeffin143_> and thus inserting v[1] or v[2] should work correctly but there is some error
< jeffin143_> but the output is , the map is unable to print the first element since it lost its address somehow : https://ibb.co/0jHKCrS
< lozhnikov> jeffin143: I guess it happened due to push_back().
jeffin143 has joined #mlpack
< jeffin143> lozhnikov : how should I resolve it
< lozhnikov> jeffin143_: Try to allocate at the declaration. (std::vector<std::string> temp(3);). In that case it works.
< jeffin143> No , I can't because, I really don't know wether I have to insert the string or not based on a condition
< lozhnikov> i.e. push_back() copies the elements sometimes and the views become invalidated.
< jeffin143> I am doing , since you suggested to save the token in a vector and then insert it's string view
< lozhnikov> The easiest way to fix that is to consider std::list instead of std::vector
< jeffin143> Umm , so I would use STD::list to store the token I need to insert inside the map and then insert the view of list inside the map , that way if the input is cleared also we would have our map
< jeffin143> Thanks :)
< jeffin143> Btw how do you so quickly come with an answer , for my bug , I was trying hard to understand what the issue is
< lozhnikov> jeffin143: I think you can use std::deque as well. Maybe std::deque would work faster than std::list.
< jeffin143> I agree with you, let me see
< lozhnikov> jeffin143: I just tried to change m[temp[temp.size()-1]] by m[strview] and that worked. So I decided that the views become invalidated. The only reason of that can be push_back().
< lozhnikov> since it is the only line where you modify the temp vector
< jeffin143> BT , printing the memory location : says that it never changes it's memory
< lozhnikov> jeffin143: No, actually the location changed every time. (Look at the output o std::cout<<i<<" "<<&i<<std::endl;).
< lozhnikov> jeffin143: Looks like the vector reaches the maximum capacity, reallocates the array and copies the data.
< jeffin143> Omg , yes you are right, just noticed it , I was checking the last line , which I wrote
< jeffin143> Yes that's the issue
aryandosaj has joined #mlpack
aryandosaj has quit [Client Quit]
xiaohong has joined #mlpack
vivekp has joined #mlpack
< jenkins-mlpack2> Project docker mlpack nightly build build #341: STILL UNSTABLE in 3 hr 33 min: http://ci.mlpack.org/job/docker%20mlpack%20nightly%20build/341/
sreenik has quit [Quit: Page closed]
< xiaohong> Does anyone compile the mlpack with the ouput says that
< xiaohong> mlpack/build/deps/ensmallen-1.15.0/include/ensmallen_bits/spsa/spsa.hpp:120:8: warning: private field 'shuffle' is not used [-Wunused-private-field] bool shuffle;
favre49 has joined #mlpack
< favre49> xiaohong: Yup, that is issue #114 on the ensmallen repo
< xiaohong> Thx, I will subscribe the issue to see the status.
favre49 has quit [Quit: Page closed]
xiaohong has quit [Ping timeout: 256 seconds]
jeffin143 has quit [Ping timeout: 245 seconds]
jeffin143_ has quit [Ping timeout: 256 seconds]
xiaohong has joined #mlpack
jeffin143 has joined #mlpack
< jeffin143> rcurtin : you there ?
< jeffin143> Um, regardin scaling PR , If we have to provide inversetransfrom () function to user , then we must find inverse of a matrix , and that could be risky
< jeffin143> Suppose : output = whiteningMatrix * output , now insides the inversetransfrom () , we can easily return inv(whiteningMatrix) * output , but there may be case when whiteningMatrix is singular matrix , in that case, our function wouldn't be able to do the intended job*
< zoq> xiaohong: The warning was fixed in 1.15.1.
akhandait has quit [Ping timeout: 252 seconds]
< xiaohong> Zoq: So what I need to do is to clean builded dir, and recompile to download new version of ensmallen?
< zoq> Since this is just a warning, you could ignore the message; but yeah you can remove the build folder and the cmake file will download the latest stable version if you build mlpack again.
< xiaohong> Okay, thank you for your information.
< xiaohong> Also any information about the hoeffding_tree_test.cpp's warning?
< zoq> have to check the issue
< xiaohong> like the issue I opened in https://github.com/mlpack/mlpack/issues/1911
< zoq> right, saw the issue, not sure yet if this is a correct warning
akhandait has joined #mlpack
xiaohong has quit [Ping timeout: 256 seconds]
< rcurtin> jeffin143: I have not thought it through fully (please check my math...) but the whitening transformation we are doing looks like this: output = diag(1 / (eigenvalues + epsilon)) * eigenvectors * data
< rcurtin> inverting this should be possible, but let's first consider the case where all eigenvalues > 0
< rcurtin> in this case, we can invert as: inv(eigenvectors) * diag(eigenvalues) * output
< rcurtin> and I think there is an identity that lets us simplify inv(eigenvectors) (also, the eigenvectors should be full-rank and thus invertible unless I am mistaken)
< rcurtin> I think this will work even when eigenvalues are 0, because of the '+ epsilon'
< rcurtin> now, in cases where we have negative eigenvalues, I am not sure, I think the inversion formula will still work but we may not get a unique result (I have not thought it through)
< jeffin143> rcurtin , the scaling_test file has a dataset for which eigenvectors we're [ 1,0 ; 0,1]
< jeffin143> Which can not be inverted.??
< rcurtin> that's the identity matrix, its inverse is itself
< jeffin143> I do agree but using function inv(a) throws an error
< jeffin143> Since d is 0 for this matrix
< jeffin143> Armadillo inv()
< rcurtin> I don't know what d is
< jeffin143> determinant
< rcurtin> the determinant of the identity matrix is 1
< jeffin143> Oh yeah , then I don't know , why it throwing error , just a sec
< rcurtin> you might want to look into identities you can use... remember that the eigendecomposition is A = QVQ^-1, so Q (the eigenvectors) have to be invertible
< rcurtin> I am not sure if there are any identities that apply here... maybe we have to invert Q... but it should be possible regardless
xiaohong has joined #mlpack
< jeffin143> Yes , eigenvectors have to be invertible , we can be sure of that
< jeffin143> I need to rework , on the code , may be it's something else that is throwing error
< jeffin143> Will get back to you in some time :)
< rcurtin> sounds good
< rcurtin> like I said I think in some cases where the given matrix has zero or negative eigenvalues anyway, we may need special handling and may not be able to recover the exact original matrix (I *think* we can recover it under some transformation but I haven't thought about it well enough), but that's okay
< rcurtin> we will still be able to match the API of the other scalers, I think, and that helps with consistency for users
jeffin143 has quit [Ping timeout: 248 seconds]
< rcurtin> I'm presenting mlpack today at the DataTech conference: https://minneanalytics.org/datatech/
< rcurtin> I understand the audience will not be very technical, but we'll see how much C++ they are ready for :)
< zoq> nice speaker list
< rcurtin> unfortunately the only talks on the schedule that I find interesting are at the same time as my slot...
< rcurtin> I'll just be reusing the slides for the past 10 mlpack talks I've given... I'm surprised at the mileage I have gotten out of these
< rcurtin> especially since I originally wrote that talk in 2016
< zoq> the title is great :) I think it's the same as well
< zoq> "Leadership in Data Science Panel" sounds interesting
< rcurtin> I think I will miss that, I am still at my company's little Minneapolis office :) I was going to head to the conference at lunchtime
jeffin143 has joined #mlpack
< jeffin143> rcurtin : sorry for the trouble , I would have certainly done some typos, that raised error, while rewriting the code , it work well enough.
< jeffin143> So I guess , we are correct :)
< jeffin143> Also good luck for your talk ;)
< jeffin143> :) *
vivekp has quit [Ping timeout: 244 seconds]
vivekp has joined #mlpack
jeffin143 has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
sreenik has joined #mlpack
< rcurtin> jeffin143: thanks, I'll take a look at the updated code when I have a chance :)
vivekp has quit [Ping timeout: 258 seconds]
toshal_ has joined #mlpack
toshal_ is now known as toshal
< sreenik> rcurtin: How was the response for your presentation?
sreenik has quit [Quit: Page closed]
< rcurtin> sreenik: I think it went really well, the room was not big but it was pretty full and there was a good amount of engagement and interest
< rcurtin> mostly I hear that people are scared of C++ (and rightfully so---the error messages can be insane), so getting people to write C++ instead of Python can be tricky
< rcurtin> (however, I think the Python bindings help with this for the average user. the user who is interested in speed is probably writing C++ anyway and is not scared)
< rcurtin> as always, people are excited about the Bandicoot slide, so it reminds me that I really need to be spending my free time working on that :)
< rcurtin> here are the slides I used, but they're very similar to other slides I've used in the past: http://www.ratml.org/misc/datatech_mlpack.pdf
< rcurtin> I gave out a bunch of stickers too, maybe someday they will be common on laptops :)
< rcurtin> I heard more "wow, I want to go give this a try" than I usually do, and also some "I'd like to contribute to machine learning libraries, maybe this is a good place to start", so I wonder if we will see some contributions from Minnesota soon
< rcurtin> but not Antarctica or space, which are the two places I am interested in receiving contributions from, now that we've checked off all the other continents :)