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/
< jenkins-mlpack>
* michaelfox99: added Save(), Load(), Type() to LaplaceDistribution
< jenkins-mlpack>
* saxena.udit: Refactoring and optimizations on Adaboost.
jbc__ has joined #mlpack
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
govg has quit [Ping timeout: 250 seconds]
govg has joined #mlpack
govg has quit [Ping timeout: 250 seconds]
govg has joined #mlpack
govg has quit [Ping timeout: 250 seconds]
jbc__ has quit [Quit: jbc__]
jbc__ has joined #mlpack
jbc__ has quit [Quit: jbc__]
jbc__ has joined #mlpack
sumedhghaisas has joined #mlpack
jbc__ has quit [Quit: jbc__]
govg has joined #mlpack
sumedhghaisas has quit [Ping timeout: 264 seconds]
sumedhghaisas has joined #mlpack
govg has quit [Quit: Reconnecting]
govg has joined #mlpack
< sumedhghaisas>
naywhayare: Hey, I am very sorry that I was unavailable for 2 days :(
< sumedhghaisas>
was busy in campus placement schedule...
< sumedhghaisas>
are yo free now?? I wanted to talk to you about the simple typedef we were planing to do... for svd incremental learning...
< naywhayare>
sumedhghaisas: yeah, I am sort of free right now
< sumedhghaisas>
naywhayare: okay... I was thinking since now we have a wrapper class for armadillo svd... we can change it to support QuickSVD and RegularizedSVD... just add a template to it... that way it will be a wrapper class for all normal svd factorizers...
< sumedhghaisas>
does that sound good??
jbc__ has joined #mlpack
< sumedhghaisas>
naywhayare: and yes... typedefs... I am confused as to what name should I assign??
< sumedhghaisas>
I am putting all the typedefs in amf.hpp...
jbc__ has quit [Quit: jbc__]
< naywhayare>
sumedhghaisas: sorry, I stepped out...
< naywhayare>
can you explain what you mean by adding a template for SVD factorizers?
< naywhayare>
why not just pass the factorizer to AMF?
< naywhayare>
we need a wrapper for armadillo svd() since it returns three matrices (we need to convert them to two)
< naywhayare>
for quic-svd, I think Siddharth should add an overload that returns only two matrices
< naywhayare>
and RegularizedSVD returns only two also (though I think it might need a bit of refactoring)
< naywhayare>
I'm not sure what you're trying to do with typedefs, so I don't think I can answer that question well
< sumedhghaisas>
yes.. sure... so I checked Quick_SVD.. (anyways why is there a hyphen?) it implements ExtractSVD and return U, V and sigma which is not compatible with cf module...
< sumedhghaisas>
same with RegularizedSVD
< naywhayare>
(the hyphen is there because the guy who named it thought it should be QUIC-SVD... it's some big acronym that stands for something that I forget...)
< naywhayare>
RegularizedSVD doesn't seem to return sigma
< naywhayare>
just u and v
< sumedhghaisas>
so we implement a wrapper like this SVDWrapper<Classname>
< sumedhghaisas>
which will make things compatible with CF module...
< naywhayare>
yeah, I understand
< sumedhghaisas>
like armadillo's SVD...
< naywhayare>
I think we should do this: we should ask Siddharth if he wants to refactor QUIC-SVD, or if he thinks using the SVDWrapper would be better
< naywhayare>
he has to make QUIC-SVD work with CF by the end of his project anyway
< naywhayare>
do you think that's reasonable? I'll ask him next time I see him... or you can ask him next time you see him
< sumedhghaisas>
okay no problem...
< sumedhghaisas>
I don't see him on irc anymore.....
< sumedhghaisas>
but even I was busy for last 2 days...
< sumedhghaisas>
so I will try tomorrow...
< naywhayare>
he said his internet access is having problems
< naywhayare>
he's been in touch a bit through email, but I don't think he has the situation worked out yet
< sumedhghaisas>
I heard from seniors that he is in bangalore...
< naywhayare>
huh, shouldn't he be on campus? or did he graduate?
< sumedhghaisas>
basically IT hub of India... it should not be any problem to get internet there... :)
< sumedhghaisas>
its too cheap...
< naywhayare>
:)
< sumedhghaisas>
he is doing his practice school...
< sumedhghaisas>
sort of internship... just a graded one/...
< sumedhghaisas>
for 6 months...
< naywhayare>
ah, okay
< sumedhghaisas>
anyways... PlainSVD names is not appropriate so I changed it to SVDWrapper ... it is templatized right now... If siddharth decided to do the refactoring some other way... I will remove it... is it fine??
< sumedhghaisas>
*decides
< naywhayare>
yeah, that's just fine
< sumedhghaisas>
and about typedefs... it is to make things little simpler for normal user...
< sumedhghaisas>
like to use incomplete learning...
< sumedhghaisas>
user has to do AMF<SVDIncompleteIncrementalLearning<sp_mat>... ,... and what not...
< sumedhghaisas>
all of this has to be passed into CF template...
< sumedhghaisas>
and not to forget termination policy... IncompleteIncrementalLearning<SimpleResidueTermination>...
< sumedhghaisas>
if I remember correctly you suggested that we create some simple typedefs so that normal user can use these factorizer without too much of internal knowledge...
< naywhayare>
yeah
< naywhayare>
maybe something like 'typedef AMF<SVDIncompleteIncrementalLearning<sp_mat> > IncompleteIncrementalSVDFactorizer;'?
< sumedhghaisas>
if we shift to C11 we can even templatize typedefs.. :)
< sumedhghaisas>
with using syntax...
< sumedhghaisas>
But whcih termination policy to use??
< sumedhghaisas>
validationRMSEtermination takes too much time...
< sumedhghaisas>
so I think tolerance termination should be the default...
< sumedhghaisas>
what do you think??
< sumedhghaisas>
and worst part is ValidationRmseTermination can not have default constructor so user anyways have to create a object of it and pass...
< sumedhghaisas>
that nullifies the primary reason we are making these typedefs...
< sumedhghaisas>
can me somehow check this by SFINAE?? cause the constructor of ValidationRMSEtermination requires reference to matrix being factorized which AMF can provide...
< sumedhghaisas>
so if AMF can detect the type of constructor then we can totally abstract the this termination policy from users...
< naywhayare>
I think the tolerance termination is fine
< naywhayare>
as a default
< naywhayare>
I don't think it's necessary to check for a default constructor with SFINAE... we can just not provide typedefs for things that use ValidationRMSETermination
< sumedhghaisas>
okay... but out of curiosity... can it be done??
< naywhayare>
yes, I think it is possible in C++03 to detect whether or not a function exists and has a certain number of arguments
< naywhayare>
I'm not sure how to make that work for the constructors though
< naywhayare>
have you seen Boost.MPL? I bet you would enjoy looking through its code :)
< sumedhghaisas>
yes... indeed... most amazing library I have ever seen... they implement lists using variadic templates.. which can also be sorted at compile time... how cool is that :)
< naywhayare>
:)
jbc__ has joined #mlpack
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
jbc__ has quit [Quit: jbc__]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
sumedhghaisas has quit [Ping timeout: 272 seconds]
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]
marcus_z1q has joined #mlpack
marcus_zoq has quit [Read error: Connection reset by peer]
marcus_zoq has joined #mlpack
marcus_z1q has quit [Read error: Connection reset by peer]