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/
govg has joined #mlpack
Erwan_ has quit [Ping timeout: 260 seconds]
vivekp has quit [Ping timeout: 258 seconds]
vivekp has joined #mlpack
< kaushik_>
Hello, so I have gone through some of the tutorials, design guidelines.
< kaushik_>
Can someone direct me to something i can work on, new feature / bug fix?
< kaushik_>
I saw issues on github page but seems like there is already someone working on almost all of easy issues.
govg has quit [Ping timeout: 248 seconds]
vivekp has quit [Ping timeout: 260 seconds]
govg has joined #mlpack
vivekp has joined #mlpack
vivekp has quit [Ping timeout: 248 seconds]
vivekp has joined #mlpack
vivekp has quit [Ping timeout: 248 seconds]
vivekp has joined #mlpack
< rcurtin>
kaushik_: there are a lot of issues open, I am sure that you should be able to find one in there; alternately, you can try implementing a new machine learning algorithm or trying to accelerate an existing implementation
< rcurtin>
ok, I was going to work on this one also today, but there is definitely room for two people to work on it
< rcurtin>
why don't you focus on things in src/mlpack/methods/r* and s* and I'll start from the beginning of the alphabet?
< rcurtin>
do you think that would work for you?
< kaushik_>
sure.
< kaushik_>
bbl
< kaushik_>
rcurtin: this is more of a manual work right?
< rcurtin>
I am not sure what you mean
< kaushik_>
rcurtin: does this data::CreateNVP(rf, "random_forest") aslo change to BOOST_SERIALIZATION_NVP (rf);
< rcurtin>
kaushik_: yes, go ahead and do that
< rcurtin>
technically that is not reverse compatible with older saved random forests, but the next release is a major version bump so I think it is ok
< rcurtin>
zoq: lots of PRs today, a productive day I guess :)
< rcurtin>
if anyone wants one, let me know, I guess I can toss it in the mail :) (I dunno how expensive international shipping for a single sticker is though...)
< kaushik_>
can I also get one sticker 😅
< rcurtin>
kaushik_: I can ship you one if you like, but shipping to india from the US is a little expensive for a single sticker
< zoq>
Looks great to me ... I'll grab one once I get a chance :)
< kaushik_>
rcurtin: yeah, I understand. I wasn't serious when I said that.
< kaushik_>
btw, will this be replaced similarly or as issue says " can also change places where we serialize std::vectors or std::maps to serialize those directly instead of first serializing the number of elements and then serializing each element." it is somewhat different?
vivekp has quit [Read error: Connection reset by peer]
< rcurtin>
kaushik_: no worries :)
< rcurtin>
for the serialization, previously the way it worked is that because of the serialization shim's weirdness, you could not directly do 'data::CreateNVP(someStdVector, "name")'
< rcurtin>
instead, you have to first serialize someStdVector.size() and then serialize each thing individually
< rcurtin>
if everything is changed to use serialize() instead of Serialize(), then the serialization shim isn't needed and we can use boost::serialization directly to just do 'BOOST_SERIALIZATION_NVP(someStdVector)', which is much shorter and cleaner
< rcurtin>
so the snippet you sent, you could remove that and also the serialization of 'numTrees' and just do
< rcurtin>
ar & BOOST_SERIALIZATION_NVP(trees)
vivekp has joined #mlpack
< kaushik_>
right, I thought the same.
< rcurtin>
there are tests built in for the serialization, so once you make the changes you can build and run mlpack_test to make sure nothing is broken
< kaushik_>
and there are places where using namespace data; and then CreateNVP (x,"x") is used so i have removed the using namespace part.
< rcurtin>
yep, no need for the namespace specification once we use only BOOST_SERIALIZATION_NVP
< kaushik_>
ah ok cool :)
< zoq>
rcurtin: I'm curious is the gray box the PC-tower?
< rcurtin>
the one the stickers are sitting on?
< zoq>
yes
< rcurtin>
that's an old mac G4 cube
< rcurtin>
which is sitting on top of an SGI octane
< rcurtin>
last time I played with those I couldn't get anything to install on them correctly... the G4 cube wouldn't boot from USB correctly (a problem with debian-installer I think)
< rcurtin>
and the octane appears to have a bad network card... it is sending invalid packets
< zoq>
ah, had to lookup SGI octane :)
< zoq>
I guess, now you can put at sticker on each :)
< rcurtin>
yeah, I have 200, so there is no shortage :)
< rcurtin>
zoq: I am trying to debug the speed of LSTMs for an internal Symantec project (which hopefully will turn into a deployment), and it seems like there are lots of copies in Forward() and Backward()
< rcurtin>
like 'output.submat(...)' in the boost::apply_visitor() calls
< rcurtin>
these seem like they are necessary for batch support, since the input format is currently set up so that each sequence is unrolled into a single column of a matrix
< rcurtin>
I think the input format for RNNs has been discussed before, but it seems like it would be best for the actual speed of the code if we took input as a cube, with each slice corresponding to a time step and each column corresponding to a data point
< rcurtin>
what do you think? I can start some refactoring to try and avoid those copies and open it as a PR if you like
< rcurtin>
the only thing I am not sure of is how we can support variable-length sequences like that
< zoq>
Are we talking about LSTM with #1107 merged? But I think using cube would make sense, but right now I don't have a good solution for variable length sequences.
< rcurtin>
ah I meant in master, let me look at #1107 to see if the issue is fixed
< rcurtin>
the code looks definitely better but I am having trouble making it work, I think there was some problem in my network setup...
< zoq>
or there is some isue with the LSTM code, I can take dig into the problem if you send me the network
< zoq>
might be tomorrow :)
< rcurtin>
nah, I can debug it, it's ok :)
< rcurtin>
I got it to work; with a two-layer network of LSTMs where each layer has 250 elements, it takes 11 seconds (!) for 50 iterations of SGD (iterations not epochs)
< rcurtin>
so I think there is still some slowness somewhere
< zoq>
I think running over batches would accelerate the training process, but I agree there is still something we have to dig up.